需要删除Python建议

需要删除Python建议,python,google-app-engine,screen-scraping,web-scraping,web-crawler,Python,Google App Engine,Screen Scraping,Web Scraping,Web Crawler,我需要从商业网站获取产品ID。产品ID是URL末尾的数字系列 例如:http://example.com/sp/123170/具有产品ID123170 一些要求: 代码必须由Python编写 由于产品数量很大,我希望软件能够在由于某些原因停止后重新启动 每天可以跑一次 新产品每天都在更新/添加,因此软件需要能够处理这些问题。 如果可能的话,我很乐意与谷歌应用引擎合作 请为我推荐一些想法和开源代码。我发现了scrapy.org和Beautifulsoup。还请给我一些建议,哪一个更适合这个目的

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

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

一些要求:

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

请为我推荐一些想法和开源代码。我发现了scrapy.orgBeautifulsoup。还请给我一些建议,哪一个更适合这个目的?

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


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


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

另外,Scrapy是一个很好的web抓取框架。您可以使用的另一种选择是使用Beauty soup和(支持身份验证和多线程下载)


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

对于定期调度,你可以在应用程序引擎中查找

另外,Scrapy是一个很好的web抓取框架。您可以使用的另一种选择是使用Beauty soup和(支持身份验证和多线程下载)


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

你需要一个爬虫程序,以及在每个爬虫会话之间保存数据的方法

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


若要在会话之间持久化数据,可以将爬网数据存储在数据库中,我更喜欢使用它,但这可能不适用于AppEngine
sqlalchemy
支持许多数据库引擎,其中sqlite3最容易设置。

您需要一个爬网程序和一种在每个爬网会话之间保存数据的方法

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



若要在会话之间持久化数据,可以将爬网数据存储在数据库中,我更喜欢使用它,但这可能不适用于AppEngine
sqlalchemy
支持许多数据库引擎,其中sqlite3是最容易设置的。

@而且他要求的是推荐,而不是代码。所以我认为这是一个真正的问题。@SushantGupta很公平,尽管scrapy和BeautifulSoup做不同的事情,它们可以一起使用。希望这篇文章能对其他人有所帮助。它使用漂亮的python库来使用python进行web抓取。一个初学者的详细教程。@andb他要求的是推荐,而不是代码。所以我认为这是一个真正的问题。@SushantGupta很公平,尽管scrapy和BeautifulSoup做不同的事情,它们可以一起使用。希望这篇文章能对其他人有所帮助。它使用漂亮的python库来使用python进行web抓取。初学者的详细教程。谢谢。该网站不提供任何API。刮痧汤和靓汤,哪一种更好?我更喜欢喝咖啡和漂亮的汤。对于db解决方案,我喜欢MongoDB,因为它是无模式的,并且适合存储非结构化数据。我从未在我的应用程序中使用过Scrapy。谢谢。该网站不提供任何API。刮痧汤和靓汤,哪一种更好?我更喜欢喝咖啡和漂亮的汤。对于db解决方案,我喜欢MongoDB,因为它是无模式的,并且适合存储非结构化数据。我从来没有在我的应用程序中使用过Scrapy。如果html格式不好,Lxml会有一些问题,而且这会花费你更多的时间。另外,它是一个C库,因此它会非常快,但是在WindowsBeautifulsoup 4上编译时会遇到问题现在就使用lxml,所以如果lxml失败,它也会失败。谢谢你的建议。我对网页抓取很陌生。我不知道如何获取所有页面的产品ID。如果我使用循环转到每个产品页面,请检查该页面是否存在。如果页面退出,则获取产品ID?但是有数以百万计的产品页面,不可能使用我的方法。有什么建议吗?非常感谢。@John:未经允许爬上数百万页是不礼貌的行为,近乎非法。您需要联系有问题的站点,并制定一种可接受的方式来获取数据。他们要么提供API(可能基于RSS),要么提供数据转储。这可能会花你很多钱。@John:如果你试图自己做这件事,并在他们所有的页面上循环,他们会注意到并永久阻止你的IP。如果html格式不好的话,Lxml会有一些问题,而且这会花费你更多的时间。另外,它是一个C库,因此它会非常快,但是在WindowsBeautifulsoup 4上编译时会遇到问题现在就使用lxml,所以如果lxml失败,它也会失败。谢谢你的建议。我对网页抓取很陌生。我不知道如何获取所有页面的产品ID。如果我使用循环转到每个产品页面,请检查该页面是否存在。如果页面退出,则获取产品ID?但是有数以百万计的产品页面,不可能使用我的方法。有什么建议吗?非常感谢。@John:用它爬了数百万页