【问题标题】:How can I iterate through the pages of a website using Python?如何使用 Python 遍历网站的页面?
【发布时间】:2012-06-14 06:03:52
【问题描述】:

我是软件开发的新手,我不知道该怎么做。我想访问网站的每个页面并从每个页面中获取特定的数据。我的问题是,我不知道如何在不提前知道各个网址的情况下遍历所有现有页面。例如,我想访问 url 以

开头的每个页面

“http://stackoverflow.com/questions/”

有没有办法编译一个列表然后遍历它,或者是否可以在不创建一个巨大的 url 列表的情况下做到这一点?

【问题讨论】:

    标签: python web loops


    【解决方案1】:

    试试Scrapy

    它会为您处理所有抓取,让您专注于处理数据,而不是提取数据。我不会复制粘贴教程中已有的代码,而是留给您阅读。

    【讨论】:

    • +1 用于 Scrapy。有一点学习曲线,但一旦掌握了它就很容易使用。
    • 谢谢,我想我会试试的。我的问题不是真正处理数据,而是搜索它。我想如果我知道技术术语,我可以自己查一下。感谢您的帮助!
    【解决方案2】:

    要从网站获取特定数据,您可以使用一些网络抓取工具,例如 scrapy

    如果需要的数据是由 javascript 生成的,那么您可能需要类似浏览器的工具,例如 Selenium WebDriver 并手动实现对链接的抓取。

    【讨论】:

      【解决方案3】:

      例如,您可以制作一个简单的 for 循环,如下所示:

      def webIterate():
          base_link = "http://stackoverflow.com/questions/"
          for i in xrange(24):
              print "http://stackoverflow.com/questions/%d" % (i)
      

      输出将是:

      http://stackoverflow.com/questions/0
      http://stackoverflow.com/questions/2
      http://stackoverflow.com/questions/3
      ...
      http://stackoverflow.com/questions/23
      

      这只是一个例子。您可以传递大量问题并随心所欲地提出问题

      【讨论】:

      • 我认为 StackOverflow 只是一个例子。其他网站没有这么明确的URL scheme,需要通过爬取来解析。
      • 梅贝。但是,如果他能告诉我们该网站的真实示例,需要汇总,那么帮助作者会容易得多:)
      • 我知道它是如何工作的,但 stackoverflow 只是一个例子,我试图搜索的网站不使用数值来编号页面。
      • 给我们一个例子,我们会尝试找出解决方案:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多