news 2026/9/4 5:22:52

python爬虫: 初识Requests与Robots协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python爬虫: 初识Requests与Robots协议

文章目录

  • 爬虫
    • robots协议
    • GET请求
    • POST 请求
    • GET请求带参数

爬虫

爬虫, 也称网网络爬虫(网络机器人), 是一种按照一定的预设规则, 自动浏览并抓取网络数据的程序或脚本.

网络机器人的执行流程:

数据清洗: 是指对采集到的原始数据进行处理, 修正, 转换和标准化的过程, 目的是让数据变得规范, 准确

robots协议

robots协议也称为爬虫协议, 爬虫规则, 是指网站根目录下存放的一份文本文件robots.txt, 用于告诉哪些页面可以抓取, 哪些页面不可以抓取(君子协议)

  • robots.txt 君子协定的数据获取规则
    • User‑Agent:用户代理,通过该请求头的标识,确认爬虫的身份
    • Disallow:不允许访问的资源
    • Allow:允许访问的资源
    • Sitemap:网站地图
    • Crawl‑delay:访问的间隔时间

下面是一段获取页面源代码的代码

fromurllib.requestimporturlopen url='http://www.baidu.com'resp=urlopen(url)print(resp.read().decode('utf-8'))# 拿到页面源代码

这里是用 urllib 来抓取页面源代码, 这是python内置的一个模块, 但是, 它并不是我们常用的爬虫工具, 常用的抓取页面的模块通常使用一个第三方模块request, 这个模块的优势就是比urllib还要简单, 并且处理各种请求都比较方便

importrequests# 爬取百度页面源代码url='http://www.baidu.com'resp=requests.get(url)resp.encoding='utf-8'print(resp.text)

Requests 库的作用: Requests 库是Python中最流行, 最优雅的HTTP客户端库, 让Python代码发送HTTP请求变得极其简单

GET请求

请看下面代码

importrequests content=input("亲输入你要搜索的内容: ")url=f'https://www.sogou.com/web?query={content}'resp=requests.get(url)print(resp.status_code)print(resp.text)

运行, 在打印的内容中出现了:此验证码用于确认这些请求是您的正常行为而不是自动程序发出的,需要您协助验证, 这是为什么呢?

这是因为服务器检测出了不是正常的浏览器行为,而是代码自动化的程序

打开网页,查看请求信息,可以看到:

user-agent Mozilla/5.0(Windows NT10.0;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/151.0.0.0Safari/537.36

这里的信息表示的是用户使用什么设备发送本次请求, 那么我们可以通过添加请求头信息的方式处理这次反爬

importrequests content=input("亲输入你要搜索的内容: ")url=f'https://www.sogou.com/web?query={content}'headers={"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36'}resp=requests.get(url,headers=headers)print(resp.status_code)print(resp.text)

注意: requests 会严格识别 header 键名,写错的话这个请求头等于没生效

POST 请求

importrequests url='https://fanyi.baidu.com/sug'data={'kw':input("请输入一个单词: ")}resp=requests.post(url,data=data)print(resp.text)# 拿到的是字符串print(resp.json())# 拿到的json数据

GET请求带参数

这里在网页中获取请求参数

这里可以将查询到的参数统一封装到一个字典, 传给requests的get请求的params参数

importrequests url='https://movie.douban.com/j/chart/top_list'data={'type':'13','interval_id':"100:90","action":"",'start':'0','limit':'20'}headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36'}resp=requests.get(url,params=data,headers=headers)# print(resp.text)print(resp.json())print(resp.request.url)

另外,在网页中查看并在代码中添加请求设备信息, 处理反爬

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 5:22:49

Facebook BM 交易平台推荐

做 Meta 矩阵投放,BM 商务管理账户是管理广告账户、主页、像素的核心载体。不少卖家自己注册 BM 时,经常遭遇资质审核、平台风控拦截,想要快速拿到可用资产,就会考虑第三方交易渠道。但市面上渠道鱼龙混杂,私下个人交易…

作者头像 李华
网站建设 2026/9/4 5:20:54

Runway平台集成Grok Imagine Video 1.5:AI视频生成实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 5:19:48

物流分拣中心排班优化:MILP+规则引擎落地实践

简介:本资源面向2026年辽宁省数学建模竞赛B题参赛者,聚焦物流分拣中心排班优化这一典型运筹学实战问题,专为需突破建模瓶颈的队长、编程基础薄弱但追求高分的队员及冲刺特等奖的精英团队设计。压缩包共60个文件(1.5MB)…

作者头像 李华
网站建设 2026/9/4 5:19:24

C# MVC+EasyUI+ECharts后台管理系统架构解析与实战指南

简介:这是一套面向C#初学者与Web开发进阶者的后台管理系统完整源码,适用于学习MVC架构设计、前后端分离实践及数据可视化集成。资源基于ASP.NET MVC框架构建后端逻辑,采用EasyUI实现响应式管理界面,结合ECharts完成多维度图表分析…

作者头像 李华
网站建设 2026/9/4 5:17:33

生物信息学高效进阶:构建可复现分析流程是核心加速器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华