scrapy_基本使用

1.介绍

     Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

2.安装scrapy

第一步:pip install scrapy


安装过程中出错:

如果 pip install Scrapy有错误
(1)building 'twisted.test.raiser' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual‐cpp‐build‐tools


解决方案:去这个网站 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载twisted对应版本的whl文件(如我的Twisted‐17.5.0‐cp36‐cp36m‐win_amd64.whl),cp后面是 python版本,amd64代表64位,然后运行命令:
pip install C:\Users\...\Twisted‐17.5.0‐cp36‐cp36m‐win_amd64.whl
再重新输入: pip install Scrapy


(2)如果再报错
输入 :python ‐m pip install ‐‐upgrade pip


如果再报错 win32 解决方法:
输入:pip install pypiwin32


(3)再报错:使用anaconda
使用步骤:

  • 打开anaconda
  • 点击environments
  • 点击not installed
  • 输入scrapy
  • apply
  • 在pycharm中选择anaconda的环境

3.项目创建

在终端中输入 scrapy startproject 项目名称

注:项目名字不允许数字开头,也不能包含中文

4.项目组成

spiders目录下的文件:

  •    __init__.py     自定义的爬虫文件.py   由我们自己创建,是实现爬虫核心功能的文件
  • __init__.py
  • items.py          定义数据结构的地方,是一个继承自scrapy.Item的类
  • middlewares.py    中间件 代理
  • pipelines.py    管道文件,里面只有一个类,用于处理下载数据的后续处理,默认是300优先级,值越小优先级越高(1‐1000)
  • settings.py      配置文件 比如:是否遵守robots协议,User‐Agent定义等 ,robots协议会使爬取不到数据所以,最好不开启

 5.创建爬虫文件

在spiders目录中创建爬虫文件

  1. cd 项目名称\项目名称\spiders
  2. scrapy genspider 爬虫文件名 要爬取的网页

6.运行爬虫

scrapy crawl 爬虫名字

注:要在spiders文件中执行

 7.爬虫文件的基本组成

class BaiduSpider(scrapy.Spider):
    # 爬虫的名字 用于运行爬虫使用的值
    name = 'baidu'
    #允许访问的域名
    allowed_domains = ['baidu.com']
    #起始url地址指的是第一次要访问的域名,在爬取的时候,如果不是此域名之下的
url,会被过滤掉,如果是html结尾的最后斜杠不要,不然会访问不到

    start_urls = ['http://baidu.com/']

    def parse(self, response):
        print('hhhhhhhhhhh')

 8.常用方法

text响应的是字符串
body 响应的是二进制文件
xpath()返回的值类型是selector列表
extract() 提取的是selector对象的data
extract_first()提取的是selector列表中的第一个数据

9.scrapy工作原理

    spiders先发送url给引擎,引擎继续发送url给调度器,调度器在打出个请求,之后下载器向互联网发送请求下载数据,下载器下完数据(response)后发送给spiders通过xpath解析数据,解析结果交由引擎判断如果是数据就给管道存到文件或者数据库,如果是url就给调度器继续执行以上操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值