1、安装python,装2.7就好了,因为scrapy里面要求的一些支撑包没有3.3版本的。有windows的安装包,无压力
2、安装scrapy,看官网的安装指导,装一大堆,都快想吐了
3、照着入门教程做一个简单的,顺便看看scrapy 的架构图,了解XPath选择器
这些都说的挺略,时间有点长,记不得细节,也没有多少难度
4、我的第一个抓爬目标是mmonly,静态的而且没有js,最终目标是爬新浪微博的图而且不用api,所以接触了image pipeline,里面有个地方特别坑
image pipeline错误: exceptions.KeyError: 'image_urls' 更新时间:2013.08.09
要将分析到的图片链接放到item里面的image_urls里面,这个东东分明是个list,我用append来加入,运行会有错误提示
别人的代码是item['image_urls'] = hxs.select('//*..******').extract(),这样的确可以,而且有了这个赋值之后,在用append加入字符串(url)就可以正确下载了
image pipeline 下载路径 更新时间:2013.08.11
我想将爬下来的图片一组组的分开文件夹放置,但是官网教程的只是在setting.py里面规定路径
打算在自己实现的那个pipeline里面修改一下文件名,下载完成后分类到新建的文件夹里面(这个工作我用C++在windows下写过类似的功能)
第一步,获取相关路径,先获得当前目录os.getcwd(),然后读取scrapy.cfg,在追踪settings.py,本来直接写进文件就好了,手贱
用到configparser,不过settings.py没有section,解析不了,自己解析了唯有,其实简单的字符串操作而已
第二步,利用os模块,从设置存储位置复制到自己的设计的目录。如果用硬要移动的话,shutil模块
XPath介绍使用
中文学习:www.w3school.com.cn/xpath
scrapy提供的教程:http://doc.scrapy.org/en/latest/topics/selectors.html
记得在命令行中用 scrapy shell <待分析网页url>,基于iPython,方便测试和一开始学习
可以用chrome的审查元素方便对着看,右键还可以copy xpath,不过跟scrapy实现的不是完全兼容
绝对路径的xpath会比模糊的要快,例如/html/body/div[3]/p会比//*[class="xxx"]/p要快
crawl抓取单个页面的图片,测试
按照Scrapy Tutorial和Downloading Item Images的步骤,应该可以解析单个网页(还要会用Xpath),简单测试一下
spider的写法
spider主要负责分析和截获网页内容的功能,那么爬出来可能有两种url:
1、作为下一个要分析的网页url,分析出来就是存在item里面的,这个url应该交由parseItem函数去分析
2、这个url里面的数据不是存入item的,但是可以从这个url分析出更多的上一类的url,我交给parse函数去分析
start_urls默认就是交由parse处理的。所以Tutorial才强调spider至少有三个成员嘛
在做parse的函数里面产生request,Request(next_url, callback = self.parseItem),那么这个next_url就会交由parseItem去分析了
防·反爬虫
我第一次的作品就是爬图片,爬的对象是mmonly
一开始没有做avoid banning的工作,只能下载几张图片,其他所有的图片都下不了(我也怀疑是家里或者外部网络的原因)
打击了我一天多后,查反爬虫技巧,看scrapy的相关文档,我做了如下工作
1、禁用Cookies
2、设置User Agent。查看user agent:在chrome中,地址栏输入chrome://version/
今晚爬了一下煎蛋的妹子图,成功了哦。再次尝试这个mmonly的时候,竟然就可以了,下载飞快
scrapy image pipeline批量抓取图片爬虫 python源代码
连github小猫都下载不了,有需要参考的评论留邮箱吧。
这个第一次的小作品,没有涉及js的处理
下一步,将Item 的信息记录下来,暂时用csv等方式好了,迟些在加入数据库
简单避免重复下载,存储基本内容。
源码:http://pan.baidu.com/s/1kV1vc
不再更新喽,在准备考研。