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对象的dataextract_first()提取的是selector列表中的第一个数据

9.scrapy工作原理

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

Original: https://blog.csdn.net/grey_mouse/article/details/128252039
Author: grey_mouse
Title: scrapy_基本使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/789215/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球