Python爬虫10天学习计划 - 第三天:你的第一个爬虫,使用requests库
昨天我们聊了爬虫基础原理,搞懂了HTTP/HTTPS协议、网页HTML结构,还有爬虫"请求 -> 获取 -> 解析 -> 保存"的基本流程。今天我们终于要动手写代码了,来完成你的第一个爬虫,用Python最流行的requests库,真正发起一次HTTP请求,拿到完整的网页内容。
1. 为什么新手入门必选requests?
Python生态里发HTTP请求的库很多,但requests绝对是新手的第一选择:
- 极简设计:把复杂的HTTP底层细节都封装好了,几行代码就能完成一次请求,对新手特别友好
- 社区成熟:遇到问题随便搜都能找到答案,踩坑少、学习快
- 功能够用:90%的爬虫需求用
requests都能搞定,基础打牢再学其他库也不迟
说白了,requests就是为新手量身定做的入门库,学会它你就能快速写出能干活的爬虫,获得正反馈,越学越有动力。
2. 第一步:安装requests
打开你的终端或者命令提示符,执行这一条命令就能安装:
pip install requests
如果你的电脑同时装了Python2和Python3,提示找不到pip,可以换成pip3 install requests。安装完成之后,就可以在代码里导入使用了。
3. 几行代码写你的第一个爬虫
我们先来爬百度首页,体验一下requests有多简单:
import requests# 目标网址,一定要带http/httpsurl = "https://www.baidu.com"# 发送GET请求,拿到响应response = requests.get(url)# 设置编码,避免乱码response.encoding = "utf-8"# 打印网页内容print(response.text)
你没看错,就这几行,你就已经完成了一次完整的爬虫请求,成功拿到了百度首页的HTML代码。我们拆解一下每一步:
import requests:导入我们刚安装的库,这样才能用它的功能url:定义我们要爬的网址,记住必须带协议头(http/https),不然会请求失败requests.get(url):发送一个GET请求,这也是我们爬网页最常用的请求方式,方法返回一个响应对象response.encoding:手动指定编码,很多时候requests自动识别会出错,手动指定能避免乱码response.text:拿到网页的HTML文本内容,直接打印就能看到了
4. response对象常用知识点
我们拿到的这个response对象,里面藏着很多我们需要的信息,新手必须掌握这几个常用属性:
状态码判断请求是否成功
print(response.status_code)# 输出:200
状态码是服务器告诉你请求处理结果:
一般写代码我们都会先判断:如果状态码是200再继续处理,不然就打日志重试。
两种获取内容的方式
response.text:自动转成字符串文本,爬网页HTML、JSON接口都用这个response.content:原始二进制内容,爬图片、视频、文件这类二进制资源用这个
其他常用属性
response.headers:看服务器返回的响应头,排错的时候用response.cookies:拿到服务器给你的Cookie,后面需要登录维持会话的时候会用到
5. 新手最常见问题:乱码怎么解决?
很多新手刚写爬虫,一打印出来一堆乱码,别慌,这只是编码不匹配,按照这个步骤解决基本都OK:
- 手动指定编码:
response.encoding = "utf-8",大多数网站都是utf-8 - 如果还是乱码,试试
response.encoding = response.apparent_encoding,让requests自己分析内容的编码
这两步下来,99%的乱码问题都能解决。
6. 实战示例:爬微博热搜榜
正好我们今天要总结热搜,我们用requests来写一个简单的热搜榜爬虫:
import requests# 微博热搜榜单地址url = "https://s.weibo.com/top/summary"# 不加请求头微博会拒绝访问,我们模拟一下浏览器headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"}# 发送请求response = requests.get(url, headers=headers)response.encoding = "utf-8"if response.status_code == 200:print("成功拿到热搜榜页面,明天我们学习怎么提取里面的热搜数据!")else:print(f"请求失败,状态码:{response.status_code}")
你运行一下,就能成功拿到微博热搜榜的HTML页面,明天我们学习用BeautifulSoup从这个HTML里面提取出热搜排名和标题,到时候就能自动获取每天的热搜了。
7. 今天内容小结
今天我们动手写出了第一个爬虫,核心内容其实很简单:
- 发请求:
response = requests.get(url) - 拿内容:
response.text文本,response.content二进制 - 解乱码:手动指定
response.encoding
是不是比你想象的简单多了?爬虫入门其实没有那么难,一步一步来,很快就能写出能用的爬虫。明天我们继续,学习怎么从HTML里面提取我们真正想要的数据。
📊 今日微博热搜(2026-04-09,前50条)总结:
- 女子靠转弯让直行碰瓷30余起被刑拘:女子长期利用交规中"转弯让直行"的规则碰瓷,累计作案30多起,最终被警方刑事拘留,提醒广大司机遇到交通事故注意保留证据,警惕这类碰瓷套路。
- 女子推迟婚礼捐骨髓8年后双方相见:一位女子为陌生血液病患者推迟自己的婚礼,捐献造血干细胞,八年之后捐献者和患者终于见面,这份善意打动无数网友。
- 最新暴雨强对流预警:气象部门发布最新暴雨强对流预警,提醒国内多个地区注意防范强降雨、雷暴大风等灾害天气,大家出行注意安全。
- 白日提灯第28集无广:热门剧集《白日提灯》更新到第28集,网友讨论无广告版本的观看资源,引发追剧热潮讨论。
- 巴基斯坦总理明确说停火包括黎巴嫩:巴基斯坦总理公开表态,此次停火协议范围包含黎巴嫩地区,中东局势再次引发国际关注。
- sbti测试爆火:继MBTI人格测试之后,新型人格测试sbti爆火网络,大量网友参与测试并分享结果,这类人格测试为何总能引发全网讨论成为话题。
- 张元英看BTS演唱会:韩国艺人张元英被拍到现场观看BTS演唱会,引发粉丝和网友讨论,话题迅速登上热搜。
- NIP战胜WBG:电竞比赛中NIP战队击败WBG战队,结果引发电竞粉丝讨论,登上热搜榜单。
- 5人坠河遇难女孩刚搬入新房读书:突发意外事故造成5人坠河遇难,其中一名女孩刚刚搬入新家准备入学读书,悲剧发生后网友纷纷哀悼,提醒出行注意安全。
- 国防部回应日部署远程导弹:针对日本部署远程导弹的相关问题,中国国防部作出正式回应,明确我方立场,受到国际关注。
- 内娱嘴亲烂了都拍不出这样汹涌的爱意:网友评价新剧,感叹内娱很多作品都拍不出剧中这种自然汹涌的爱意,引发对国产剧拍摄水平的讨论。
- 瘫痪女孩误买邓紫棋演唱会票平台拒退:一名瘫痪女孩不小心错买了邓紫棋演唱会门票,因为身体原因无法到场申请退票被平台拒绝,引发网友对票务平台人性化退票规则的讨论。
- 美议员称外星人已与人类接触:美国一名议员公开对外宣称外星人已经和人类进行过接触,惊人言论引发网友热议。
- 金莎孙丞潇领证:金莎和男友孙丞潇领证结婚的消息曝光,两人恋情一直受到关注,终于修成正果,网友纷纷送上祝福。
- 刘畊宏再晒王俊凯小泡芙合照:刘畊宏再次分享王俊凯和女儿小泡芙的合照,勾起很多网友的回忆,当年的合照现在看依旧很温馨。
- 爷爷卖16000个烧饼孙女打赏给主播:爷爷辛苦卖烧饼攒下的钱,被孙女拿来给主播打赏,引发网友对未成年人直播打赏问题的讨论,提醒家长管理好自己的支付账户。
- papi酱已退出papitube:知名网红papi酱被曝已经退出自己参与创办的papitube公司,引发大家对MCN机构和创始人关系的讨论。
- BTS演唱会:BTS演唱会举办,相关话题多次登上热搜,足以见得组合依旧拥有超高人气。
- 男子被保时捷车主当交警面威胁:男子和保时捷车主发生纠纷,被对方当着交警的面威胁,视频曝光后引发网友对路怒症和蛮横行为的谴责。
- 男子开路虎加油500元后逃单:男子开路虎加了500元汽油不付钱直接逃单,没想到很快就被网友认出找到,这类逃单行为受到网友谴责。
- 孙杨张豆豆有孩子了:游泳名将孙杨和张豆豆被曝已经迎来孩子,两人恋情一直受关注,消息传出后网友纷纷祝福。
- 胃病拖成胃癌会经历5个阶段:医学科普内容分享,胃病如果不及时治疗,拖成胃癌一般会经历五个发展阶段,提醒大家身体不适早就医,引发网友对健康问题的重视。
- 穿普拉达的女王2:经典电影《穿普拉达的女王》确认拍第二部,消息曝光后引发网友回忆杀,很多人表示非常期待。
- 三个内娱神奇工作室:网友总结内娱三家艺人工作室的神奇操作,引发圈内对艺人工作室公关能力的讨论。
- 女子头痛硬扛7天昏迷确诊李斯特菌:女子头痛硬扛七天后昏迷,最终确诊李斯特菌感染,提醒大家身体出现异常不要硬扛,早就医才能避免危险。
- 张萌曾找过楚乔传原班人马:张萌在节目中透露,当年拍摄《楚乔传》时曾经尝试邀请原班人马,引发网友对当年剧集选角的回忆。
- 美国的停火谈判被以色列加了备注:有消息称美国推动的停火谈判,最终协议被以色列加上特殊备注,引发国际社会对停火协议有效性的质疑。
- 迟重瑞现身陈丽华告别仪式:迟重瑞现身妻子陈丽华的告别仪式,消息引发关注,网友纷纷表达哀悼。
- 伊朗为黎巴嫩硬刚美国:伊朗公开为黎巴嫩表态,强硬回应美国,中东局势再次变得紧张,受到国际关注。
- 女孩玩拼豆不幸触电离世:女孩玩拼豆时不幸触电身亡,悲剧引发网友讨论,提醒家长务必注意孩子用电安全,儿童接触电器必须有大人陪同。
- 伊朗威胁退出停火:伊朗发出警告,若相关诉求无法满足将退出停火协议,中东局势再次升温。
- 民勤种树女生遭恶意凝视引众怒:在民勤治沙种树的女生遭到网友恶意造谣和凝视,这件事引发众怒,网友纷纷谴责恶意行为,支持女生的治沙贡献。
- NIP对战WBG:NIP和WBG的比赛赛前讨论登上热搜,电竞粉丝纷纷预测比赛结果。
- 金莎回应质疑:金莎领证后针对网友对年龄差距的质疑作出回应,获得很多网友的理解和支持。
- 黄金再反转:黄金价格走势再次出现反转,引发投资理财网友的热烈讨论,大家都在猜测后续走势。
- 李纯马頔不办婚礼不拍婚纱照:艺人李纯和马頔被曝在一起后,两人决定不办婚礼也不拍婚纱照,引发网友对现代婚姻观念的讨论。
- 郭敬明拍的九尾妖狐月下变身:郭敬明新作品中九尾妖狐月下变身的片段曝光,引发网友讨论,话题登上热搜。
- 多次试管流产后夫妻因生育起分歧:一对夫妻多次试管失败流产后,因为生育问题产生分歧,引发网友对生育观念和夫妻关系的讨论。
- 顺德又一饭店被刘雨鑫带火:美食博主刘雨鑫探店带火了顺德的又一家饭店,再次引发大家对网红探店影响力的讨论。
- 曝某大厂超大杯手机停更:有消息称某手机大厂的超大杯旗舰产品线将要停更,引发数码爱好者的猜测和讨论。
- 戛纳 盛典:戛纳电影节即将开幕,相关话题提前预热,网友讨论今年的参展影片和明星阵容。
- 花生配可乐:花生配可乐的搭配引发吃货讨论,很多人说这个搭配非常好吃,也有人接受不了,引发网友站队。
- 姐姐们演我看王俊凯:姐姐们看王俊凯表演的反应被网友说"演我",粉丝纷纷表示太真实,引发搞笑讨论。
- 语数英老师笑了半天不知道谁教的:学生写出的答案让语数英老师都哭笑不得,不知道这是谁教出来的,引发老师和学生的共鸣,很多人都分享过类似经历。
- 向鹏止步太原站男单首轮:乒乓球运动员向鹏在太原站男单比赛首轮出局,引发体育粉丝讨论。
- 恋与深空:热门恋爱游戏《恋与深空》相关话题登上热搜,玩家讨论游戏最新活动内容。
- 德系品质藏在大众黄金标准里:大众汽车相关营销话题讨论德系品质标准,登上热搜榜单。
- 胃癌真的是拖出来的:健康科普内容提醒大家,胃癌很多都是从小病拖出来的,一定要定期体检,早发现早治疗,再次引发大家对健康的重视。
- 新加坡双尸案细节曝光:新加坡双尸案的案件细节曝光,惊人细节引发网友讨论,成为社会话题。
- 已婚女子回应男同学逼其离婚:已婚女子公开回应男同学逼自己离婚嫁给他的奇葩经历,引发网友对边界感的讨论,提醒大家人际交往要保持合适距离。