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

爬虫:请求头,requests库基本使用

请求方式:get(向服务器要资源)和post(提交资源)

user-agent:模拟正常用户的一种方式

cookie:登陆保持

referer:表示当前这一次请求是由哪个请求过来的

抓取数据包得到的内容才是判断依据elements中的源码是渲染之后的不能作为判断标准

requests模块:

import requests
url="https://www.baidu.com"
response=requests.get(url)
#print(response.text)#响应内容有乱码,requests模块会自动寻求一种解码方式去解码
print(response.content.decode())

使用requests库保存图片:

*确定url        发送请求,获取响应        保存响应

import requests
url='https://ts1.tc.mm.bing.net/th/id/R-C.f1e812793db01f91d2f3c3ba3170e9b2?rik=wWVRN0nDp7vIYw&riu=http%3a%2f%2fpic.bizhi360.com%2fbbpic%2f72%2f6572.jpg&ehk=Jofon8hSdAuGUWZlfcJuSvncnsYZsKv0KdGjxHD%2b2eg%3d&risl=&pid=ImgRaw&r=0'
response=requests.get(url)
#print(response.text)#响应内容有乱码,requests模块会自动寻求一种解码方式去解码
with open('1.png','wb')as f:
    f.write(response.content)

response.text和response.content的区别:

text:str类型,requests模块自动根据http头部对响应和编码做出的推测,返回文本数据

content:bytes类型,可以通过decode()解码,返回二进制数据(图片,视频等)

将编码设置为utf-8:

response.encoding='utf-8'#指定编码

相关文章:

  • 《C++Linux编程进阶:从0实现muduo 》-第8讲.C++面试如何高效获取线程ID
  • nginx如何重启
  • 物联网时代,HMI 设计的创新机遇与挑战
  • 人工智能的三个主义(行为主义、连结主义、符号主义)的整体性关系(并非割裂)
  • MySQL注入中user-agent和cookie存在的注入
  • OpenCV 从入门到精通(day_03)
  • 化学方程式配平 第33次CCF-CSP计算机软件能力认证
  • WEB安全--文件上传漏洞--黑名单绕过
  • 《Linux运维总结:基于银河麒麟V10操作系统+ARM64架构CPU二进制部署单机ACL版consul v1.18.1》
  • 【linux】管理磁盘——RAID10(含备份)与逻辑卷管理
  • Java线程池详解
  • 用deepseek创建可运行的简单的php框架
  • 如何在k8s中对接s3存储
  • 多线程 - wait notify
  • Apache Commons Lang3 常用方法详解
  • 大数据(4.3)Hive基础查询完全指南:从SELECT到复杂查询的10大核心技巧
  • 【超分辨率】基于DDIM+SwinUnet实现超分辨率
  • 深入理解pthread多线程编程:从基础到生产者-消费者模型
  • Android: Handler 的用法详解
  • 【工具】在 Visual Studio 中使用 Dotfuscator 对“C# 类库(DLL)或应用程序(EXE)”进行混淆
  • 广西鹿寨一水文站“倒刺扶手”存安全隐患,官方通报处理情况
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 商务部召开全国离境退税工作推进会:提高退税商店覆盖面,扩大入境消费
  • 把中国声音带向世界,DG和Blue Note落户中国
  • 秦洪看盘|缩量回踩,积蓄叩关能量
  • 外交部:国际社会广泛理解和支持中方不同意台参加世卫大会的决定