从网站产品目录抓取价格数据
我对urllib有点了解,因为我在课堂上用它从谷歌的货币转换器中解析数据。不过现在我想做一个网络爬虫,从这个网站nextworth.com上获取价格。
如你所见,这并不像从一个页面上抓取数据那么简单(比如黄金价格之类的),因为这里有很多产品和很多问题需要回答,才能显示最终价格。它的工作流程是这样的:
1.
访问网站(http://www.nextworth.com)
2.
点击一个产品类别(例如:iPhones) http://nextworth.com/search/1/cat/iphones/
3.
点击具体的产品(例如:iPhone 4 16GB ATT) http://nextworth.com/product/293814/cat/iphones/apple_iphone_4_16gb_(black)_-_at&t/
接下来,你会看到一系列问题,以便给你一个即时报价。接下来的步骤是:
4.
是否完全开机 - 是
5.
屏幕是否破裂 - 否
最后,价格就会显示出来。这就是我想要抓取和存储的数据。目前我只想获取完好无损商品的价格,因为这样比较简单,但我也想要在步骤4为否和步骤5为否,或者步骤4为是和步骤5为是等情况下的价格。
所以我想问的是,写这个程序的伪代码(逻辑步骤)会是什么样的?这样做可行吗,还是会花费很长时间和很多代码行?我应该先为每个类别创建几个函数,然后在这些函数中处理每个产品吗?我觉得这样会花费很久。还是说我应该为每个类别使用类,并嵌入函数?
编辑:我想问一下,Python是否是一个合适的语言来做这个,希望用Python来实现是可行的,因为我目前只会Python和C++。
2 个回答
网页抓取的工具需要你先安装一些库和开发环境。你现在考虑用Python来做这件事。
我们创建了一个网页抓取服务平台,让你可以轻松地通过几次点击来自动抓取网页。虽然我们还在开发一个Chrome浏览器的扩展,预计这个扩展的第一个版本会在本周末发布。你只需要写几行JSON代码,就可以使用我们的服务来帮你抓取网页了。
如果你想抓取网站上的信息,有一个很不错的网页抓取模块可以使用。这个模块的好处是,它可以利用QtWebkit模块,这样你就可以处理那些包含很多JavaScript的网站了。
不过,我得提醒你一些事情。
你正在做的是一个自动化的过程,看起来你需要访问很多页面。如果你没有得到你要抓取的网站的许可,可能会被他们的服务器封锁,因为你在占用他们的资源,而这些资源本来是用来服务真实用户的,他们会更在意这些用户。
在这种情况下,你最好使用某种API。看看这个网站是否有API,因为API对自动化的过程要友好得多,只要你遵守他们的API规则就可以了。