ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

python爬虫: 初识Requests与Robots协议

2026/9/4 5:22:57 拓冰建站 浏览量
python爬虫: 初识Requests与Robots协议 文章目录爬虫robots协议GET请求POST 请求GET请求带参数爬虫爬虫, 也称网网络爬虫(网络机器人), 是一种按照一定的预设规则, 自动浏览并抓取网络数据的程序或脚本.网络机器人的执行流程:数据清洗: 是指对采集到的原始数据进行处理, 修正, 转换和标准化的过程, 目的是让数据变得规范, 准确robots协议robots协议也称为爬虫协议, 爬虫规则, 是指网站根目录下存放的一份文本文件robots.txt, 用于告诉哪些页面可以抓取, 哪些页面不可以抓取(君子协议)robots.txt 君子协定的数据获取规则User‑Agent用户代理通过该请求头的标识确认爬虫的身份Disallow不允许访问的资源Allow允许访问的资源Sitemap网站地图Crawl‑delay访问的间隔时间下面是一段获取页面源代码的代码fromurllib.requestimporturlopen urlhttp://www.baidu.comrespurlopen(url)print(resp.read().decode(utf-8))# 拿到页面源代码这里是用 urllib 来抓取页面源代码, 这是python内置的一个模块, 但是, 它并不是我们常用的爬虫工具, 常用的抓取页面的模块通常使用一个第三方模块request, 这个模块的优势就是比urllib还要简单, 并且处理各种请求都比较方便importrequests# 爬取百度页面源代码urlhttp://www.baidu.comresprequests.get(url)resp.encodingutf-8print(resp.text)Requests 库的作用: Requests 库是Python中最流行, 最优雅的HTTP客户端库, 让Python代码发送HTTP请求变得极其简单GET请求请看下面代码importrequests contentinput(亲输入你要搜索的内容: )urlfhttps://www.sogou.com/web?query{content}resprequests.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 contentinput(亲输入你要搜索的内容: )urlfhttps://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}resprequests.get(url,headersheaders)print(resp.status_code)print(resp.text)注意: requests 会严格识别 header 键名写错的话这个请求头等于没生效POST 请求importrequests urlhttps://fanyi.baidu.com/sugdata{kw:input(请输入一个单词: )}resprequests.post(url,datadata)print(resp.text)# 拿到的是字符串print(resp.json())# 拿到的json数据GET请求带参数这里在网页中获取请求参数这里可以将查询到的参数统一封装到一个字典, 传给requests的get请求的params参数importrequests urlhttps://movie.douban.com/j/chart/top_listdata{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}resprequests.get(url,paramsdata,headersheaders)# print(resp.text)print(resp.json())print(resp.request.url)另外,在网页中查看并在代码中添加请求设备信息, 处理反爬