Python 入门:用 requests 读懂一次网络请求
很多人第一次写爬虫或者调用接口,都会被一堆术语吓住:请求、响应、状态码、请求头。其实一次网络请求并不神秘,用 Python 的 requests 库走一遍,你就能把这些概念和真实动作对应起来。
第一步是发出一次最简单的 GET 请求。安装好 requests 之后,只需要两行代码:import requests,然后 response = requests.get("https://example.com")。这里的 get 就是“去拿一个网页”的意思,括号里的地址就是你要访问的目标。拿到 response 之后,先别急着打印全部内容,先看 response.status_code:200 表示成功,404 表示地址不存在,500 表示对方服务器出了问题。只看这一个数字,你就已经知道这次请求成没成。
第二步是分清响应的两部分:状态和内容。response.text 是服务器返回的正文,对网页来说通常就是 HTML;response.headers 则是随正文一起回来的“附带说明”,比如内容类型和编码。初学者常犯的错误是直接打印 response.text 一大段,结果看花了眼。更好的习惯是先打印状态码和一小段正文,确认拿到的是你想要的东西,再决定怎么处理。
第三步是试着带参数发请求。很多接口不是固定地址,而是要你告诉它查什么,比如查某个城市的天气。requests 允许用 params 参数传这些条件:requests.get(url, params={“city”: “Beijing”}),库会自动把参数拼到地址后面。动手改一次参数、再看一次返回结果,你就会明白:所谓接口调用,无非就是“把条件发过去、把结果拿回来”。
第四步是处理最常见的两种失败。第一种是网络不通或者地址写错,程序会直接报错,这时先检查地址能不能在浏览器里打开;第二种是状态码不是 200,比如 403 表示对方拒绝访问,这时不要反复重试,先看返回的正文里有没有提示信息。把报错信息原样读一遍,往往比盲目改代码省事得多。
给新手的三条建议:第一,先用公开的示例地址练手,不要一上来就碰需要登录的网站;第二,每次请求后先看状态码,再看正文,养成这个顺序能少踩很多坑;第三,写代码时把地址和参数分开写,不要把长地址硬拼成一串,改起来也方便。
从今天开始试试:发一次 GET 请求,打印状态码,再打印正文的前 200 个字符。走完这一步,网络请求就不再是一个抽象名词,而是一次你亲手完成的操作。
- 点赞
- 收藏
- 关注作者
评论(0)