因为我一直在试图找出如何创建循环,但我无法从其他线程创建循环,所以我需要帮助。我对这个完全陌生,所以编辑现有代码对我来说很难
我正试图从网站上抓取数据。这是我到目前为止所做的,但我必须“手动”插入页面。我希望它能自动将价格从1页降至20页,单位为zl/m2,例如:
import requests
from bs4 import BeautifulSoup
link=("https://ogloszenia.trojmiasto.pl/nieruchomosci-mam-do-wynajecia/wi,100.html?strona=1")
page = requests.get(link).text
link1=("https://ogloszenia.trojmiasto.pl/nieruchomosci-mam-do-wynajecia/wi,100.html?strona=2")
page1 = requests.get(link1).text
link2=("https://ogloszenia.trojmiasto.pl/nieruchomosci-mam-do-wynajecia/wi,100.html?strona=3")
page2 = requests.get(link2).text
pages=page+page1+page2+page3+page4+page5+page6
soup = BeautifulSoup(pages, 'html.parser')
price_box = soup.findAll('p', attrs={'class':'list__item__details__info details--info--price'})
prices=[]
for i in range(len(price_box)):
prices.append(price_box[i].text.strip())
prices
我尝试过使用此代码,但被卡住了。我不知道我应该添加什么来一次从20个页面获得输出,以及如何将其保存到csv文件
npages=20
baselink="https://ogloszenia.trojmiasto.pl/nieruchomosci-mam-do-wynajecia/wi,100.html?strona="
for i in range (1,npages+1):
link=baselink+str(i)
page = requests.get(link).text
提前感谢您的帮助
Python对空格敏感,因此任何循环的代码块都需要缩进,如下所示:
如果希望所有页面都包含在一个字符串中(因此可以使用与上面pages变量相同的方法),可以将字符串附加到循环中:
要使用结果创建csv文件,可以查看python内置的csv module中的csv.writer()方法,但我通常发现使用print()写入文件更容易:
w+
告诉python如果文件不存在,则创建该文件;如果文件确实存在,则覆盖该文件a+
将附加到现有文件(如果存在)相关问题 更多 >
编程相关推荐