Python-Scrapy的安装与总结

简单方法直接在黑窗口中pip install scrapy
这种是最好的 除了scrapy 还会下载其他依赖插件
安装好scrapy后 通过 “scrapy startproject 项目名称” 创建一个scrapy 爬虫框架
"cd 项目名称 "
“scrapy genspider 一个爬虫” 创建一个爬虫
“scrapy crawl 爬虫名称” crawl 启动一个爬虫

五个大的模块

1.scheduler 用于存放request对象队列
2. download 用于发送请求获取响应
3. spider 用于提取数据或处理之后再提取url并放回url队列中
4. item pipeline (数据管道) 用于存储数据 iteam->项
5. scrapy engine scrapy 引擎 框架调度器
前面4个不同的模块相互之间的关联就是通过scrapy 引擎来进行调度管理的
scheduler队列把request对象交给引擎;
引擎把request交给download 进行请求;
请求的响应交给engin,
engin再把response 交给spider 进行数据处理 完毕之后再交给engin
engin再负责交给item pipeline(数据管道)或者再交给scheduler队列,
以此进行以整个循环

1.数据重复怎么搞

  • 后一次循环的时候会覆盖前一次item修改的结果,scrapy item 传输的都是对象的引用,需要注意
  • 在yield下一个函数的时候使用cp库的deepcopy

url地址js生成的怎么搞

  • 寻找规律
  • 在响应或html中寻找页数或者页码数

crawlspdier

使用步骤

  • 1.创建爬虫 scrapy genspdier -t crawl 爬虫名 限制域名

  • 2.指定start_url

  • 3.完善rules

    • 元组

    • Rule

      • LinkExtractor

        • 通过规则提取url
        • allow 正则
      • callback

        • 连接提取器提取的url的响应交给该函数处理
      • follow

        • 连接提取器提取的url的响应会继续被rules提取url地址
  • 4.完善callback

crawlspider的使用场景

  • 1.url的规律能够通过正则或者xpath表示

  • 2.最终的页面有当前业务需要的所有数据

    • 如果没有,可以在callback中手动构造请求

注意点

  • 1.parse函数不能定义,该函数有多用途,如果被定义就被覆盖了

下载中间件

process_request

  • 处理请求

  • 添加随机

    • request.headers[“User-Agent”]=’…’
  • 添加代理

    • request.meta[“proxy”]=“ip:port”
  • 不需要erturn

process_response

  • 处理响应
  • 过滤?
  • 中间值的处理?

process_exception

模拟登录

1.携带cookie登录

  • scrapy.request(url,callback,cookies={})
  • 不能把cookie放到headers中,无效的

2.使用FormReqeust

  • scrapy.FromRequest(url,formdata={},callback=self.xxx)

    • formdate:请求体
    • key:value ->form.name:value

3.自动寻找form表单中的action的url

  • scrapy.FormRequest.from_response(response,formdata={},callback)

scrapy总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值