爬虫 scrapy框架 学习摘要

爬虫流

  • spiders(爬虫)Request请求
  • spider_middlewares(爬虫中间件)加工请求
  • scheduler(调度器)请求表排序
  • downloader middlewares(下载中间件)
  • downloader(下载器Response)联网拉数据
  • spiders(爬虫)parse处理返回内容
  • item_pipeline(数据管道 items)存储数据

scrapy 一般爬虫流

  • start类
  • 执行cmd命令启动爬虫
  • from scrapy import cmdline
  • cmdline.execute(‘scrapy crawl pachongname’.split(‘ ‘))
  • settings类
  • 读取爬虫配置信息
    • headers(请求头)
    • Rebot(协议)
    • ITEM_PIPELINES(存储)
    • LOG等配置
  • spider类
  • spider函数
    • 定义爬虫名成 name
    • 定义start_users 第一个爬取链接
  • parse函数处理response响应
    • 处理响应数据
    • bs4通过tag标签过滤
    • xpath过滤
    • re过滤
    • 数据赋值给item存储对象
    • yield 提交给引擎
  • pipeline类
  • 数据管道item pipeline负责存储
  • init()初始化存储对象(存储文件等)
    • process_item()将item数据添加到存储文件中
    • close_spider()关闭爬虫 存储文件对象等
  • item类
  • item 负责定义存储类型
    • 键值对item类型

控制台命令 创建Scrapy框架

scrapy startprojcet xiangmuming

爬虫 genspider模板 crawl自动化模板

scrapy genspider -t crawl sgbz 3gbizhi.com

基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法)。
基于CrawlSpider的自动爬取进行实现(更加简洁和高效)。

CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能。其中最显著的功能就是”LinkExtractors链接提取器“。Spider是所有爬虫的基类,其设计原则只是为了爬取start_url列表中网页,而从爬取到的网页中提取出的url进行继续的爬取工作使用CrawlSpider更合适。

1.创建scrapy工程:scrapy startproject projectName
2.创建爬虫文件:scrapy genspider -t crawl spiderName www.xxx.com
    --此指令对比以前的指令多了 "-t crawl",表示创建的爬虫文件是基于CrawlSpider这个类的,而不再是Spider这个基类。

关闭控制台日志

import logging
logging.getLogger('scrapy').propagate = False

IDE中执行cmd命令

from scrapy import cmdline
cmdline.execute('scrapy crawl xiangmuming'.split(' '))

fake-useragent 动态UA

pip install fake-useragent
from fake_useragent import UserAgent
str(UserAgent().random)

spider中更改settings配置

随机延迟
custom_settings = {
    #动态延迟
    'DOWNLOAD_DELAY': random.randint(3, 9),
    #动态headers
    'DEFAULT_REQUEST_HEADERS': {
        'User-Agent': None,
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en',
    }

增量爬虫(更新监控)

Original: https://blog.csdn.net/nitianxiaozi/article/details/127716924
Author: lin’s_qianyue
Title: 爬虫 scrapy框架 学习摘要

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

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

(0)

大家都在看

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