Python分页循环

时间:2017-03-26 04:33:01

标签: python for-loop pagination beautifulsoup

我正在进行一些简单的网页抓取,并且需要找到一种更好的方法来遍历目标网站上的分页。我能做到这一点的唯一方法是编写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

1 个答案:

答案 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来存储所有网址