gpt4 book ai didi

python - 使用 BeautifulSoup 从未知数量的页面中抓取数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:56 25 4
gpt4 key购买 nike

我想从数据分布在多个页面中的网站解析一些信息。

问题是我不知道有多少页。可能有 2 个,但也可能有 4 个,甚至只有一页。

当我不知道会有多少页时,如何遍历页面?

不过我知道 url 模式,它看起来像下面的代码。

此外,页面名称不是纯数字,但它们在第 2 页的 'pe2' 和第 3 页的 'pe4' 等中。所以不能只是循环范围(数字)。

这是我正在尝试修复的循环的伪代码。

pages=['','pe2', 'pe4', 'pe6', 'pe8',]

import requests
from bs4 import BeautifulSoup
for i in pages:
url = "http://www.website.com/somecode/dummy?page={}".format(i)
r = requests.get(url)
soup = BeautifulSoup(r.content)
#rest of the scraping code

最佳答案

可以使用while循环,遇到异常就停止运行。

代码:

from bs4 import BeautifulSoup
from time import sleep
import requests

i = 0
while(True):
try:
if i == 0:
url = "http://www.website.com/somecode/dummy?page=pe"
else:
url = "http://www.website.com/somecode/dummy?page=pe{}".format(i)
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')

#print page url
print(url)

#rest of the scraping code

#don't overflow website
sleep(2)

#increase page number
i += 2
except:
break

输出:

http://www.website.com/somecode/dummy?page
http://www.website.com/somecode/dummy?page=pe2
http://www.website.com/somecode/dummy?page=pe4
http://www.website.com/somecode/dummy?page=pe6
http://www.website.com/somecode/dummy?page=pe8
...
... and so on, until it faces an Exception.

关于python - 使用 BeautifulSoup 从未知数量的页面中抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com