爬虫之爬虫介绍、requests模块、携带请求参数、url编码和解码、携带请求头
- 其他
- 2025-08-15 02:54:01

爬虫介绍 爬虫是什么? 网页蜘蛛,网络机器人,spider在互联网中 通过 程序 自动的抓取数据 的过程根上:使用程序 模拟发送http请求 ⇢ \dashrightarrow ⇢ 得到http响应 ⇢ \dashrightarrow ⇢ 把响应的数据解析出来 ⇢ \dashrightarrow ⇢ 存储起来 做爬虫需要掌握的技术 web端爬虫(网页) 抓包:抓包工具 ⇢ \dashrightarrow ⇢ 浏览器,charles,fiddler 发送http请求的模块 requests:同步的 ⇢ \dashrightarrow ⇢ 不仅仅做爬虫用 调用第三方api就可以使用request-html:aiohttp:异步的http模块 解析库:http响应 ⇢ \dashrightarrow ⇢ 可能是xml,html,json,文件,图片… ⇢ \dashrightarrow ⇢ 响应中解析出想要的数据 beautifulsoup4 ⇢ \dashrightarrow ⇢ xml/htmllxml ⇢ \dashrightarrow ⇢ xml/htmlselenium ⇢ \dashrightarrow ⇢ 请求加解析(本质是模拟浏览器)json 存储:mysql,redis,es,mongodb… pymysql:aiomysqlredis:aiorediselasticsearch.pypy-mongo 移动端爬虫(app) 抓包,发请求,解析,存储跟web一样的对app进行反编译 ⇢ \dashrightarrow ⇢ jadx 安卓:java写的app ⇢ \dashrightarrow ⇢ 把app反编译成java ⇢ \dashrightarrow ⇢ 懂java ⇢ \dashrightarrow ⇢ 看懂逻辑 ⇢ \dashrightarrow ⇢ 使用python模拟这个过程 hook技术 ⇢ \dashrightarrow ⇢ fridac语言写加密—》用java调用c语言的加密方式—》xx.so–>动态链接库文件 反编译 so文件—》IDA—》反编译成汇编和c动态调试 python模拟这个过程即可 反扒 请求头反扒:user-agent,referfer:上一个访问的地址是什么反扒:无限调试封ip ⇢ \dashrightarrow ⇢ ip代理池 -封账号 ⇢ \dashrightarrow ⇢ cookie池 -js加密 ⇢ \dashrightarrow ⇢ js逆向 动态链接库
百度,谷歌 搜索引擎本质其实就是个大爬虫 ⇢ \dashrightarrow ⇢ 不停的在互联网上爬取页面 ⇢ \dashrightarrow ⇢ 存到自己的库中 使用搜索的时候 ⇢ \dashrightarrow ⇢ 去百度的数据库中查询相关的关键字 ⇢ \dashrightarrow ⇢ 显示在页面上 ⇢ \dashrightarrow ⇢ 当我们点击某一个 ⇢ \dashrightarrow ⇢ 真正的跳转到 真正的搜索到的页面
百度做爬取时 ⇢ \dashrightarrow ⇢ 对动态页面的爬取权重要低 seo优化 ⇢ \dashrightarrow ⇢ 保证我们公司的网站通过关键字搜索,显示在第一个 - 伪静态 ⇢ \dashrightarrow ⇢ sem:付费买关键词
requests模块快速使用 介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib(内置模块),requests模块的api更加便捷(本质就是封装了urllib3)
注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求
混合项目 ⇢ \dashrightarrow ⇢ 拿回来的页面—带数据分离项目 ⇢ \dashrightarrow ⇢ 拿回来的页面 ⇢ \dashrightarrow ⇢ 数据是空的 ⇢ \dashrightarrow ⇢ 再分析接口 ⇢ \dashrightarrow ⇢ 再发请求才能拿到真正的数据看到一个页面有数据 ⇢ \dashrightarrow ⇢ 用requests发送请求 ⇢ \dashrightarrow ⇢ 拿回来的,可能跟看到的不一样
快速使用 安装模块:pip install requests使用:import requests # res中会有:http响应 响应头的,响应体的 res = requests.get(' blogs /') # 响应体的文本字符串(可能会乱码) print(res.text)``` get请求携带请求参数 方式一:直接拼在后面res=requests.get(' blogs /?ordering=-id&search=课程') 方式二:使用params参数res=requests.get(' blogs /',params={'ordering':'-id','search':'课程'}) print(res.text) url 编码和解码获得的网页内容可能会出现:%E7%BE%8E%E5%A5%B3 不是乱码 ⇢ \dashrightarrow ⇢ url编码了
url解码 res=parse.unquote('%E7%BE%8E%E5%A5%B3') print(res) url编码 res=parse.quote('刷币') # %E5%88%B7%E5%B8%81 print(res) 携带请求头请求头中可能有的:User-Agent,referer,cookie,Host
User-Agent:是消息头,可以在该消息头内了解到该网站所支持的浏览器同时可以知道访问该网站所用的浏览器以及浏览器版本,还能了解登录用的操作系统以及系统是多少位的。referer:代表从哪里来到当前页面进行访问的,百度推广就是通过referer进行的统计来访人数。不带referer可以直接下载带referer说明有防盗链。host:代表主机已百度为例,网址中 .baidu 的host就是 .baidu http1.1后面的1.1代表版本的协议号 ,分为1.0和1.1两个版本,发部分使用1.1版本,且 1.1版本必须要host请求头 header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36' } res = requests.get(' .sogou /web?query=%E7%BE%8E%E5%A5%B3', headers=header) # res=requests.request('get','url',headers=header) print(res.text)爬虫之爬虫介绍、requests模块、携带请求参数、url编码和解码、携带请求头由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“爬虫之爬虫介绍、requests模块、携带请求参数、url编码和解码、携带请求头”
下一篇
WIN11如何固定文件夹查看方式