0

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

例如:http://example.com/sp/123170/有产品 ID 123170

一些要求:

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

请推荐我一些想法和开源代码来完成这项工作。我找到了 scrapy.orgBeautifulsoup。还请给我关于它们的建议,哪一个更适合这个目的?

4

3 回答 3

1

lxml.html 是目前 Python 最好的 html 解析器。将您的文档解析为 lxml,并使用 xpath 来定位您需要的数据。

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

于 2012-12-21T05:53:53.820 回答
1

对于定期调度,您可以在应用引擎中查找cron 作业。

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

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

于 2012-12-21T05:54:30.497 回答
1

您需要一个爬虫和一种在每个爬取会话之间保存数据的方法。

对于爬虫,我推荐scrapy. 在大多数情况下,它真的比自己滚动要好得多。如果使用scrapy,则不需要 BeautifulSoup,因为 Scrapy 使用lxml,在我看来,这是目前最好的 Html 解析器

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

于 2012-12-21T06:53:59.857 回答