Scrapy是个啥?(详细内容可自行google)
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的python框架。
环境:centos7、python2.7
第一步:安装pip,下载get-pip.py(https://bootstrap.pypa.io/get-pip.py),在命令行中输入下面命令即可:
# python get-pip.py
第二步:验证pip是否安装成功(看见下图即安装成功,忽略红色,哈哈)
# pip list
pip安装成功
第三步:安装scrapy(这个才是重点,没出现error就ok咯)
# pip install scrapy
scrapy安装成功
第四步:初始化project
# scrapy startproject meitu
初始化一个scrapy项目名字是meitu
第五步:创建一个spider(在刚刚创建的project下面执行下面命令,meinv是爬虫的名字,随便起不要和project相同就好,www.mm131.com/xiaohua/是一个美图的网址)
# cd meitu
# scrapy genspider meinv www.mm131.com/xiaohua/
之后,在文件夹meitu/spider下面出现meinv.py文件,如下图,
接下来就是改造它了;
第六步:改造结果如下
第七步:运行以下命令,获得结果,图片位置在(meitu/pic)
#scrapy crawl meinv
分析:在第六步中出现的改造完的meinv.py文件,其中导入了scrapy(用它爬去图片链接)和urllib(用它下载链接美图)两个包,在MeinvSpider中:
name是这个spider的名字;
allowed_domains是允许爬去的域名(只会爬去这个域名下的链接);
start_urls是爬虫启动时第一次请求的链接;
parse函数中的response其实是请求start_urls完成后返回的结果,用xpath(不难,随便研究下可以写了)匹配出美图链接;
urllib.urlretrieve(url,'./pic/' str(self.number) '.jpg')是把分析出来的美图下载下来,存到pic目录下面(需要自己创建下);
self.number =1是为了避免每次下载的图片名字相同,导致图片被覆盖。
结语:scrapy还有不少功能,才开始学习,慢慢研究了!