我正在进行一些简单的网页抓取,并且需要找到一种更好的方法来遍历目标网站上的分页。我能做到这一点的唯一方法是编写10 +“for循环”以使其工作。 基本上我在网址中寻找“下一步”图标,如果存在,我需要抓取图标图像的父链接并将其附加到网址,转到新更新的网址,然后搜索相同的图标并重复,直到我到达最后一页(图标将消失)。 如果不对一堆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
答案 0 :(得分:1)
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)
您应该使用list来存储所有网址