1、scrapy的使用

2018-10-08  本文已影响0人  郭祺迦

使用:

(1):新建工程

scrapy startproject 工程名

(2):认识目录

doubanpro               工程总目录
    doubanpro           项目目录
        __pycache__     缓存文件
        spiders         爬虫目录
            __pycache__ 缓存文件 
            __init__.py 包的标记
            XXX.py      爬虫文件名(*)
        __init__.py     包的标记
        items.py        定义数据结构的地方(*)
        middlewares.py  中间件
        pipelines.py    管道文件,保存数据的地方(*)
        settings.py     项目配置文件(*)
    scrapy.cfg          工程配置文件,基本不用

(3):生成爬虫文件

cd  爬虫的工程名
scrapy genspider 爬虫名字 域名

(4):认识response对象

统一来到spiders文件夹里面运行
    response.url        得到请求的url
    response.text       得到响应的字符串内容
    response.body       得到响应的字节内容
    response.status     得到响应状态码
    response.headers    得到响应头部
scrapy里面已经集成好了xpath和bs4,可以直接使用,但是和以前学习的略有不同
    response.xpath()   :里面写xpath路径
        得到的都是selector对象,需要通过extract()提取
    response.css()     :里面写选择器
        里面就是写选择器的,只能写选择器
        获取文本:选择器::text
        获取属性:选择器::attr(属性)
        得到的也是selector对象,需要extract去提取

(5):运行,保存为指定格式文件

scrapy crawl douban -o douban.json
scrapy crawl douban -o douban.xml
scrapy crawl douban -o douban.csv

注意如果第一次导出csv需要配置一下,否则会出现空行的情况

完整的过程

a:定义数据结构

  在items.py定义数据结构;定义数据结构创建的对象item使用方式和字典的方式一模一样
  可以将item快速转换为字典
  d = dict(item)

b:处理数据

  配置文件开启管道
  管道文件中将数据写入文件

不用输入scrapy crawl 执行命令的话需要新建一个start.py文件;然后:

    from scrapy import cmdline
    #第一种写法:
    cmdline.execute(['scrapy','crawl','qiubaipro'])
    #第二种写法:
    cmdline.execute(('scrapy crawl qiubaipro'.split(' ')))
上一篇 下一篇

猜你喜欢

热点阅读