如何使用 Python 和 Mechanize 抓取网站

发布于 2024-12-13 18:06:49 字数 153 浏览 4 评论 0原文

如何使用 Mechanize 和 Python 来抓取网站,递归地跟踪每个页面上的每个链接?

我在教程和 Mechanize 文档中看到的每个示例都展示了如何遵循浏览“路径”(如果我可以这样称呼它)(例如,转到主页、填充表单、按提交、对响应执行某些操作),而不是抓取整个网站。

How can I use Mechanize with Python to crawl a website, recursively following every link on every page?

Every example I've seen in tutorials and Mechanize documentation shows how to follow a browsing "path" if I can call it that (e.g. go to home page, populate a form, press submit, do something with the response), rather than scraping an entire site.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自我难过 2024-12-20 18:06:49

这里有一些伪代码可以帮助您入门,如果您需要更多,请告诉我:

br = make browser object
visited=set()
max_depth=10
def crawl_all_links(browser,depth):
    if depth <= max_depth:
        for link in browser.links():
            if link not in visited:
                visited.add(link)
                browser.open(link)
                do_something(browser.read())
                crawl_all_links(browser,depth+1)
                browser.back()

crawl_all_links(browser,0)

here is some psudo code to get you started, let me know if you need more:

br = make browser object
visited=set()
max_depth=10
def crawl_all_links(browser,depth):
    if depth <= max_depth:
        for link in browser.links():
            if link not in visited:
                visited.add(link)
                browser.open(link)
                do_something(browser.read())
                crawl_all_links(browser,depth+1)
                browser.back()

crawl_all_links(browser,0)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文