【问题标题】:How to crawl a website/extract data into database with python?如何使用 python 抓取网站/提取数据到数据库中?
【发布时间】:2011-12-01 01:51:26
【问题描述】:

我想构建一个 web 应用程序来帮助我大学的其他学生创建他们的日程安排。为此,我需要将主课程表(一个巨大的 html 页面)以及指向每门课程的详细描述的链接抓取到数据库中,最好是在 python 中。另外,我需要登录才能访问数据。

  • 这将如何运作?
  • 我可以/应该使用哪些工具/库?
  • 有这方面的好教程吗?
  • 如何最好地处理二进制数据(例如漂亮的 pdf)?
  • 是否已经有很好的解决方案?

【问题讨论】:

    标签: python web-crawler


    【解决方案1】:

    如果您想使用强大的抓取框架,可以使用 Scrapy。它也有一些很好的文档。不过,根据您的任务,这可能有点矫枉过正。

    【讨论】:

    【解决方案2】:

    Scrapy 可能是最好的 Python 爬虫库。它可以维护经过身份验证的会话的状态。

    处理二进制数据应该分开处理。对于每种文件类型,您必须根据自己的逻辑进行不同的处理。对于几乎任何一种格式,您都可以找到一个库。例如,查看 PyPDF 处理 PDF。对于 excel 文件,您可以尝试 xlrd。

    【讨论】:

      【解决方案3】:

      我喜欢使用BeatifulSoup 来提取 html 数据

      就这么简单:

      from BeautifulSoup import BeautifulSoup 
      import urllib
      
      ur = urllib.urlopen("http://pragprog.com/podcasts/feed.rss")
      soup = BeautifulSoup(ur.read())
      items = soup.findAll('item')
      
      urls = [item.enclosure['url'] for item in items]
      

      【讨论】:

      • 我也在用这个。我需要在同一个站点上抓取大约 1000 个链接……但是时间太长了……你能给我一些更好的方法吗?我也可以显示代码
      【解决方案4】:

      为此,有一个非常有用的工具叫做 web-harvest 链接到他们的网站http://web-harvest.sourceforge.net/ 我用它来抓取网页

      【讨论】:

        猜你喜欢
        • 2018-08-02
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多