Python爬虫框架Scrapy

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25639809/article/details/79015106

安装wget:
下载一个Wget的源码包,http://www.gnu.org/software/wget/
打开终端进入下载目录解压,

1 输入:tar zxvf wget-1.9.1.tar.gz
2 cd 进入到解压的目录
3 输入:./configure
4 输入:make
5 输入:sudo make install

安装完成!

安装Python框架Scrapy:

pip install scrapy

Mac OS系统为10.11或更高版本安装报错:
重新启动Mac OS,按住Command+R进入Recovery模式
打开终端输入:
csrutil disable
重新启动,重新安装scrapy,成功。

教程:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/tutorial.html

使用scrapy startproject project创建项目报错:

AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

解决方案:降低twisted的版本

sudo pip install twisted==13.1.0

再次运行scrapy startproject project,成功。

爬虫demo地址:https://github.com/scrapy/quotesbot

运行:

scray list
scrapy crawl toscrape-css
scrapy crawl toscrape-css -o quotes.json

建立了scrapy工程之后,会有一个pipeline.py文件,打开修改这个文件

import json        #记得添加这两个库
import codecs

class XXXPipeline(object):                 #XXX就是你建立scrapy工程的名称
        def __init__(self):                #添加一下初始化方法
                self.file = codecs.open('item.json', 'wb', encoding='utf-8')        #item.json指的是你要保存的json格式文件的名称,编码格式一般都是'utf-8'
        def process_item(self, item, spider):
                line = json.dumps(dict(item),ensure_ascii=False) + '\n'        #这一句会将你每次返回的字典抓取出来,“ensure_ascii=False”这一句话很重要,如果是True的话就是我们保存的\u4e2d\u56fd这种格式了
                self.file.write(line)        #写入到文件中
                return item

然后我们要启用Pipeline这个组件使用我们的修改就需要修改setting.py这个文件
setting.py中默认有ITEM_PIPELINES的代码,默认是注释掉的,将注释去掉,注意这个字典中的’XXX.pipelines.XXXPipeline’与你修改的类名一致才会生效,后边的300正常不需要去修改.
scrapy crawl XXX 运行,scrapy会自动保存json格式文件到item.json文件中

猜你喜欢

转载自blog.csdn.net/qq_25639809/article/details/79015106