我想构建一个webapp来帮助我大学的其他学生创建他们的日程安排。为此,我需要抓取主时间表(一个巨大的html页面)以及每个课程的详细描述链接到数据库中,最好是在python中。此外,我需要登录才能访问数据。
- 那会怎么样?
- 我可以/应该使用哪些工具/库?
- 有没有很好的教程?
- 我如何最好地处理二进制数据(例如漂亮的pdf)?
- 那已经有很好的解决方案吗?
我想构建一个webapp来帮助我大学的其他学生创建他们的日程安排。为此,我需要抓取主时间表(一个巨大的html页面)以及每个课程的详细描述链接到数据库中,最好是在python中。此外,我需要登录才能访问数据。
requests
用于下载页面。
lxml
用于抓取数据。如果你想使用强大的抓取框架 Scrapy
。它也有一些很好的文档。根据你的任务,这可能有点矫枉过正。
requests
用于下载页面。
lxml
用于抓取数据。如果你想使用强大的抓取框架 Scrapy
。它也有一些很好的文档。根据你的任务,这可能有点矫枉过正。
Scrapy 可能是最好的爬行Python库。它可以维护经过身份验证的会话的状态。
处理二进制数据应该单独处理。对于每种文件类型,您必须根据自己的逻辑以不同的方式处理它。对于几乎任何类型的格式,您可能都能找到一个库。比如看看 PyPDF 用于处理PDF。对于excel文件,您可以尝试xlrd。
我喜欢用 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]
为此目的,有一个非常有用的工具叫做web-harvest 链接到他们的网站 http://web-harvest.sourceforge.net/ 我用它来抓取网页