Python应用之爬虫基础:requests爬虫库的简单使用(1)
创始人
2025-06-01 16:24:16

引言

在生活中,大家都使用过浏览器,通过输入要搜索的内容以及鼠标点击等操作方式,来获取互联网上的信息。直观的理解这个过程就是,客户端(用户)发送请求给服务器,服务器通过解析请求,将用户需要的信息作为响应内容传回去。

什么是爬虫

那这跟爬虫有啥关系?爬虫这种类型的程序,能够模拟人的操作来自动获取相关的信息,由于人获取信息会受到操作速度上的限制,使用爬虫可以在短时间内获取到大量信息
一个爬虫程序的产生,可以分为一下几个步骤

  1. 获取要访问的内容的链接url
  2. 设置爬虫的请求头部等字段信息(可选步骤)
  3. 发送某种类型的请求
  4. 获取得到响应,对响应内容进行分析提取需要的内容

其中1、2步骤的顺序不是绝对的,url、字段信息等内容,绝大部分情况下都需要动态生成,这部分将在后续的文章中进行讲解。
接下来将通过一个简单的案例来创建爬虫程序。

准备工作

requests库的安装

pip install requests

代码部分

简单爬虫

import requestsdef GetResponse1():url = "https://www.baidu.com"# 这个get代表使用get方法请求该url# 返回值是 服务器给get请求的响应封装成的Response对象response = requests.get(url=url)# response.content是二进制的响应数据print(response.request.headers)print(response.content.decode())print(len(response.text))if __name__ == "__main__":GetResponse1()

这是一个最简单的爬虫程序,未设置任何字段,运行结果如下:
在这里插入图片描述
但响应的长度只有2443,似乎有点短,这里的问题出在请求头的User-Agent的未设置,默认是python-requests/2.28.2,导致百度发现这是一个爬虫而不是浏览器,因此返回给我们的并非是一个正确的界面,通过设置这个字段来解决这个问题。
代码如下:

import requestsdef GetResponse1():url = "https://www.baidu.com"headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36 QIHU 360SE'}response = requests.get(url=url,headers=headers)# print(response.request.headers)# print(response.content.decode())print(len(response.text))if __name__ == "__main__":GetResponse1()

这样就能获取正确的页面了
注意:User-Agent的百度找一下,也可以查看自己浏览器的User-Agent

查看自己浏览器的User-Agent

步骤如下:
打开自己的浏览器---------->>按F12打开开发者工具---------->>点击网络功能,选中全部按钮---------->>按F5刷新一下进行抓包---------->>抓到的东西,随便选一个,就能看到User-Agent了

结果图如下
在这里插入图片描述
浏览器自带的开发者工具功能很强大,大部分爬虫的开发都会使用它来抓包分析。

Response对象解析

# Response对象的常用属性与方法
def attrs():url = "https://www.baidu.com"response = requests.get(url=url)# 响应的真实地址 也就是最终跳转的并返回给你的urlprint(response.url)# 状态码print(response.status_code)# 请求头print(response.request.headers)# 响应头print(response.headers)# 响应中携带的cookiesprint(response.cookies)# content是二进制的响应数据 这里decode能解决中文乱码问题print(response.content.decode(encoding='utf8'))

在获取响应的数据时,推荐使用response.content.decode()而不是response.text,可以同设置编码字符集来解决中文乱码的问题

模拟浏览器来查询

在百度界面,输入python进行搜索,能得到以下界面:
在这里插入图片描述
在地址栏里,可以得到一个链接:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python&fenlei=256&rsv_pq=0xd9be4c3000077eb1&rsv_t=0bb0WRpffKNGHcOpAMRtHYKVb4%2Ftb4jsrpl8LBciDmX7wYA0osUpZvWRaNwa&rqlang=en&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=6&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&prefixsug=python&rsp=5&inputT=1544&rsv_sug4=2289

这是带了参数的链接,里面必定有关键参数(也就是不可缺少的,如查询字符串),也有一些参数是可有可无的,因此要使用爬虫模拟请求,也就需要找到关键参数,如何找:通过反复删除参数同时访问该链接,直到页面不能正常显示为止,那么上一次删除的参数里面就有关键参数。
通过测试,关键参数的key为wd,等号=后面的就是查询的值。
下面利用爬虫模拟浏览器搜索

# 带参数的请求
def sendPara1():# 加上user-agent就能初步蒙混过关# https://www.baidu.com/s?wd=python# 通过parameter属性 来设置关键参数headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36 QIHU 360SE'}url = "https://www.baidu.com/s?"kw = {'wd': 'python'}# 通过params设置参数response = requests.get(url=url, headers=headers, params=kw)# 关键参数 可以通过查询的时候 删除参数来确定with open('python.html', 'wb') as f:f.write(response.content)

打开得到了 python.html,可以得到如下的界面就代表成功
在这里插入图片描述

相关内容

热门资讯

漂移是什么意思(摇杆漂移是什么... 本篇文章极速百科给大家谈谈漂移是什么意思,以及摇杆漂移是什么意思对应的知识点,希望对各位有所帮助,不...
车架号后四位是什么(车架号后四... 本篇文章极速百科给大家谈谈车架号后四位是什么,以及车架号后四位是什么在哪里看对应的知识点,希望对各位...
隐形眼镜基弧是什么意思,请问,... 隐形眼镜基弧是什么意思目录隐形眼镜基弧是什么意思请问,配隐形眼镜的时候要不要关注那个基弧?隐形眼镜基...
广西省崇左市属于什么市,祟左是... 广西省崇左市属于什么市目录广西省崇左市属于什么市祟左是地级市还是县级市崇左是南宁得直辖市吗 为什么区...
内衣尺码大小分类,内衣的型号分... 内衣尺码大小分类目录内衣尺码大小分类内衣的型号分哪几种?什么abc事什么意思?34、36是尺寸嘛?内...
几个防止卫生间反味小妙招,卫生... 几个防止卫生间反味小妙招目录几个防止卫生间反味小妙招卫生间反臭怎么办?卫生间怎么样防臭几个防止卫生间...
庄子中的成语和解释,四个出自《... 庄子中的成语和解释目录庄子中的成语和解释四个出自《庄子》的成语及解释《庄子》中的成语及解释(按篇目分...
怎么切翡翠原石(收玉石的联系方... 本篇文章极速百科给大家谈谈怎么切翡翠原石,以及收玉石的联系方式对应的知识点,希望对各位有所帮助,不要...
关于燕子的古诗,描写燕子的古诗... 关于燕子的古诗目录关于燕子的古诗描写燕子的古诗描写燕子的古诗有哪些?关于燕子的古诗关于燕子的古诗 ...
好巧不巧是什么意思,好巧不巧什... 好巧不巧是什么意思目录好巧不巧是什么意思好巧不巧什么意思?“无巧不巧”究竟何解?好巧不巧是什么意思好...
关东煮里面放什么配料啊,关东煮... 关东煮里面放什么配料啊目录关东煮里面放什么配料啊关东煮的配料关东煮需要哪些调味料呀?请问,关东煮都可...
极速进化满电出发!长安深蓝SL... 本篇文章极速百科给大家谈谈极速进化满电出发!长安深蓝SL03开启预售,以及长安蓝鲸plus新车报价对...
比亚迪f3汽车报价(比亚迪f3... 今天给各位分享比亚迪f3汽车报价的知识,其中也会对比亚迪f3价格及图片易车进行解释,如果能碰巧解决你...
两台电脑怎么共享一台打印机,两... 两台电脑怎么共享一台打印机目录两台电脑怎么共享一台打印机两台电脑如何共享一台打印机?请问一个打印机怎...
16个复韵母有哪些(16个复韵... 本篇文章极速百科给大家谈谈16个复韵母有哪些,以及16个复韵母怎么读拼音视频对应的知识点,希望对各位...
樟树有什么作用,樟树有什么作用... 樟树有什么作用目录樟树有什么作用樟树有什么作用?樟树的用途有哪些?樟树有什么作用?樟树有什么作用 ...
dazl启动子的作用,启动子和... dazl启动子的作用目录dazl启动子的作用启动子和终止子是什么作用的?dazl启动子的作用启动子的...
写字楼是干什么的 极速百科网 ... 写字楼是干什么的目录写字楼是干什么的写字楼是干什么的写字楼是干什么的 写字楼的功能介绍写字楼是干什么...
骄傲的两种解释,骄傲的意思是什... 骄傲的两种解释目录骄傲的两种解释骄傲的意思是什么?骄傲的两种解释骄傲的两种解释 “骄傲”有两个...
jp是哪个国家的缩写(jp是哪... 本篇文章极速百科给大家谈谈jp是哪个国家的缩写,以及jp是哪个国家的缩写名字对应的知识点,希望对各位...
苹果手机显示不支持此配件怎么办... 不支持此配件怎么解决 苹果iphone可能不支持此配件怎么办怎么解除不支持此配件 不支持此配件怎么解...
支付宝借呗的利息是多少,蚂蚁借... 支付宝借呗的利息是多少目录支付宝借呗的利息是多少蚂蚁借呗利息是怎么计算的蚂蚁借呗的利息是多少借呗的利...
关于兰字的词语或成语越多越好.... 关于兰字的词语或成语越多越好.目录关于兰字的词语或成语越多越好.有关兰字的成语有哪些关于兰的词语或成...
宝马m5多少钱是不是很贵呢?(... 本篇文章极速百科给大家谈谈宝马m5多少钱是不是很贵呢?,以及宝马m5li多少钱对应的知识点,希望对各...
辽宁省喀左县在哪个城市,辽宁省... 辽宁省喀左县在哪个城市目录辽宁省喀左县在哪个城市辽宁省朝阳市喀左县的邮政编码辽宁省喀左县在哪里辽宁省...
关于marcjacobs香水,... 关于marcjacobs香水目录关于marcjacobs香水marcjacobs香水(探索时尚与艺术...
四级英语考试时间分配,大学英语... 四级英语考试时间分配目录四级英语考试时间分配大学英语四级考多长时间?英语四级考试时间安排?英语四级考...
dnfbuff强化有什么用,地... dnfbuff强化有什么用目录dnfbuff强化有什么用地下城buff强化栏DNF中人物的Buff有...
幼儿园孩子新年祝福语简短,适合... 幼儿园孩子新年祝福语简短目录幼儿园孩子新年祝福语简短适合幼儿园小朋友说的新年祝福语幼儿园老师给小朋友...
正断层有哪些断层组合类型,断层... 正断层有哪些断层组合类型目录正断层有哪些断层组合类型断层的组合类型简答题 断层的类型及组合形式有哪些...