Item
Item对象是简单的容器,保存爬取到的数据,类似Python字典的用法。
Declaring Item
import scrapy class Product(scrapy.Item): name = scrapy.Field() price = scrapy.Field() stock = scrapy.Field() last_updated = scrapy.Field(serializer=str)
其实没什么好说的,先做个标记,等后面实际用到的时候,在做其他的笔记。
------------------------------------------濒危线-----------------------------------------------------
这个编辑的比较烂,只是根据学习的情况进行记录
最近看了一些scrapy的项目,但是没有见到抓取动态网页的例子,自己又仔细的查了一下,发现它真的不好用在采集动态网页上,我的目标是采集新浪微博,这是要死的节奏啊。
我查到网上几种可以采集动态网页的scrapy方法:
1.scrapy+selenium
selenium是一种自动化测试工具,以前用过Java版的写过小爬虫,但是需要打开浏览器,看起来比较丑。这种方式比较繁琐,我想到使用这种方式抓取微博,比较麻烦,所以弃坑。
2.selenium+scrapy+phandomjs实现
phantomjs相当与一种浏览器,可以不打开浏览器界面进行任务的请求。其它的和上面的方式一样。
3.scrapy+Spanish这种方式可以解析动态网页
对于新浪微博有人使用scrapy进行了采集,但是采集的只是用户信息,而且通过的是移动版的微博网站。移动版的微博网站,它进行搜索的参数不知为何没有体现在url上,这还是第一次见到,我就放弃使用scrapy采集微博了,忙完这个就抽空继续看看scrapy,这个还是很有用的。
这样看下来,还是回到使用selenium进行新浪微博的采集,因为使用selenium可以模拟人的操作,所以无需组合url获得响应,所以打算从移动版的微博网站采取信息,这个网站的结构更加的简单,容易定位元素。