我正在做一些简单的网络抓取,需要找到一种更好的方法来循环访问目标站点上的分页。我能做到这一点的唯一方法是编写 10 个以上的“for 循环”来让它工作。 基本上我在 url 中寻找“下一个”图标,如果它存在,我需要获取图标图像的父链接并将其附加到 url,转到新的更新 url,并搜索相同的图标并重复直到我到达最后一页(图标将消失)。 如果不对一堆 for 循环进行硬编码,我该如何执行此操作?
url = "http://www.somewebsite.com/"
r = requests.get(wurl)
soup = BeautifulSoup(r.text, "lxml")
for img in soup.findAll("img"):
if "/Next_Icon" in img["src"]:
link = img.find_parent("a", href=True)
extLink = (link["href"])
url = "http://www.somewebsite.com/" + extLink
最佳答案
url_stack = ["http://www.somewebsite.com/"]
while url_stack:
wurl = url_stack.pop()
r = requests.get(wurl)
soup = BeautifulSoup(r.text, "lxml")
for img in soup.findAll("img"):
if "/Next_Icon" in img["src"]:
link = img.find_parent("a", href=True)
extLink = (link["href"])
url = "http://www.somewebsite.com/" + extLink
url_stack.append(url)
你应该使用列表来存储所有的 url
关于Python 分页循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025020/