如何使用python抓取网站/将数据提取到数据库中?

时间:2011-12-01 01:51:26

标签: python web-crawler

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

  • 怎么会这样?
  • 我可以/应该使用哪些工具/库?
  • 有没有很好的教程?
  • 如何最好地处理二进制数据(例如漂亮的pdf)?
  • 那已经有了很好的解决方案吗?

4 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:3)

Scrapy可能是用于抓取的最佳Python库。它可以维护经过身份验证的会话的状态。

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

答案 2 :(得分:2)

我喜欢使用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]

答案 3 :(得分:0)

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