自动循环从几个页面收集垃圾数据

2024-03-29 09:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

因为我一直在试图找出如何使循环,但我不能从其他线程,我需要帮助。我是全新的,所以编辑现有的代码对我来说是很难的。你知道吗

我正在尝试从网站上删除数据。这是我到目前为止所做的,但我必须“手动”插入页面。我想让它自动取消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

提前谢谢你的帮助。你知道吗


Tags: texthttpsgethtmllinkrequestsdopl
1条回答
网友
1楼 · 发布于 2024-03-29 09:20:33

Python对空格敏感,因此任何循环的代码块都需要缩进,如下所示:

for i in range (1,npages+1):
    link=baselink+str(i)
    page = requests.get(link).text

如果希望将所有页面都放在一个字符串中(因此可以使用与上面pages变量相同的方法),可以将字符串附加到循环中:

pages = ""
for i in range (1,npages+1):
    link=baselink+str(i)
    pages += requests.get(link).text

要创建包含结果的csv文件,可以查看csv.writer文件()方法,但我通常发现使用print()写入文件更容易:

with open(samplefilepath, mode="w+") as output_file:
    for price in prices:
        print(price, file=output_file)

w+告诉python如果文件不存在,则创建该文件;如果文件确实存在,则重写该文件。a+将附加到现有文件(如果存在)

相关问题 更多 >