当前位置: 首页 > news >正文

爬虫基础知识

一、Scrapy

1、cookie设置

目前cookie的设置不支持在headers进行设置, 需要通过以下三种方式进行设置:
第一种:setting文件中设置cookie

  • COOKIES_ENABLED是注释的时候,scrapy默认没有开启cookie。
  • COOKIES_ENABLED没有注释设置为False的时候,scrapy默认使用了settings里面的cookie。
  • COOKIES_ENABLED设置为True的时候,scrapy就会把settings的cookie关掉,使用自定义cookie。

注意:

  • 当使用settings的cookie的时候,又把COOKIES_ENABLED设置为True,scrapy就会把settings的cookie关闭,而且也没使用自定义的cookie,会导致整个请求没有cookie,导致获取数据失败。
  • 如果使用自定义cookie就把COOKIES_ENABLED设置为True
  • 如果使用settings的cookie就把COOKIES_ENABLED设置为False

第二种:middlewares中设置cookie
在middlewares中的downloadermiddleware中的process_request中配置cookie,配置如下:

request.cookies=
{'Hm_lvt_a448cb27ae2acb9cdb5f92e1f0b454f3': '1665643660', 
' _ga': 'GA1.1.755852642.1665643660'
}

注意:cookie内容要以键值对的形式存在
第三种:在spider爬虫主文件中,重写start_request方法,在scrapy的Request函数的参数中传递cookies
重载start_requests方法

   def start_requests(self):
       headers = {
                   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) Gecko/20100101 Firefox/44.0"
                   }
       # 指定cookies
       cookies = 
       {
       'Hm_lvt_a448cb27ae2acb9cdb5f92e1f0b454f3': '1665643660', 
       ' _ga': 'GA1.1.755852642.1665643660'
       }

2、Get请求带参数

yield scrapy.FormRequest(
    url=url,
    method='GET',
    formdata=params,
    callback=self.parse_result
)

参考资料
https://www.jianshu.com/p/de3e0ed0c26b

相关文章:

  • 模拟视频推到WVP推流列表
  • STM32G474RE之RTC
  • 学习大数据DAY56 业务理解和第一次接入
  • 深入剖析 MQTT 协议:物联网通信的核心力量
  • 黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装
  • 【LeetCode】05.最长回文子串
  • 【Elasticsearch索引】Rollover滚动、Shrink收缩、Split拆分索引
  • GO学习记录
  • WSL里的Ubuntu 登录密码忘了怎么更改
  • 开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合?
  • 蓝桥杯 子矩阵 (找大小为a*b的矩阵的最大最小值的乘积,queue)
  • 信息系统服务:演绎数字时代的征程
  • 抓包神器之Charles(绕过代理屏蔽)以及证书校验绕过
  • 【Hack The Box】linux练习-- Irked
  • nginx rewrite参数 以及 $1、$2参数解析(附有生产配置实例)
  • 【计算机视觉OpenCV基础】实验一 图像预处理
  • springcloud-GateWay设计
  • 【多线程 (一)】实现多线程的三种方式、线程休眠、线程优先级、守护线程
  • 全国计算机四级之网络工程师知识点(四)
  • Java代码审计——文件操作漏洞
  • C语言——指针初阶详解
  • Part3_理解MATSIM_第51章 效益-成本分析中matsim的微观经济学解释
  • 陆地卫星(Landsat)计划:50多年的星球档案
  • AndroidStudio安装App后不自启动问题
  • iOS关于列表布局的几种实现方式小结
  • 如何让Springboot RestTemplate同时支持发送HTTP及HTTPS请求呢?
  • Linux之(15)shell(7)常见命令
  • Django(8):请求对象和响应对象
  • 汽车安全气囊设计?Abaqus/Part特殊建模方法-附案例step-by-step教学
  • G1垃圾回收器
  • 2022/11/21[指针] 多维数组与指针的联系
  • 基于STM32 CubeMX利用RTC实现带温湿度模块的万年历