需要刮取Python建议

时间:2012-12-21 05:45:54

标签: python google-app-engine screen-scraping web-scraping web-crawler

我需要从商业网站获取产品ID。产品ID是URL末尾的数字系列。

例如:http://example.com/sp/123170/的商品ID为123170

一些要求:

  • 代码必须由Python编写
  • 由于产品数量很大,我希望软件能够在停止后因某些原因重新启动。
  • 每天可以跑一次。
  • 每天更新/添加新产品,因此软件需要能够处理。 如果可能的话,我很乐意使用Google应用引擎

请向我推荐一些有关此工作的想法和开源代码。我找到了 scrapy.org Beautifulsoup 。还请给我一些关于它们的建议,哪一个更适合这个目的?

3 个答案:

答案 0 :(得分:1)

lxml.html目前是python的最佳html解析器。将文档解析为lxml,并使用xpath找到所需的数据。

http://lxml.de/lxmlhtml.html#parsing-html

答案 1 :(得分:1)

对于定期计划,您可以在应用引擎中查找cron jobs

此外,Scrapy是一个很好的网络抓取框架。您可以使用的其他替代方法是使用漂亮的汤和requests API(支持身份验证和多线程下载)。

但我建议你在废弃之前,看看该商业网站是否提供了一些API。

答案 2 :(得分:1)

您需要一个抓取工具和一种在每个抓取会话之间保留数据的方法。

对于抓取工具,我建议使用scrapy。这比在大多数情况下自己滚动要好得多。如果您使用scrapy,则不需要BeautifulSoup,因为Scrapy使用lxml,我认为这是目前最好的Html解析器

要在会话之间保留数据,您可以将已爬网的数据存储在数据库中,我更喜欢使用sqlalchemy来实现此目的,但这可能不适用于App Engine。 sqlalchemy支持很多数据库引擎,其中sqlite3最容易设置。