爬虫学习——Requests案例分析


一、使用Requests获取百度翻译的结果

在地址栏搜索百度翻译打开,然后把 .com后面的参数全部删掉回车,按下 F12 打开抓包工具 ,变成如下页面:

在这里插入图片描述
接着在翻译栏搜索 cat (注意要把输入法切换成英文,不然还是抓不到),打开抓包工具中的 sug ,切换到预览界面,就可以看到我们相关翻译结果。

在这里插入图片描述
并且我们可以看到该网页使用的请求方式是 POST ,区别于 GET 请求方式的 Query String Parameters,POST发送的参数为 From Data,即我们要搜索的内容。发送 POST 请求,发送的数据必须放在字典中,通过data参数进行传递。

在这里插入图片描述

代码和上节的比较类似,也很简单,就不做具体分析了。

import requests

url = "https://fanyi.baidu.com/sug"
s = input("输入你要翻译的英文单词")
dat = {
    "kw":s
}
# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递
resp = requests.post(url, data=dat)
print(resp.json())  # 将服务器返回的内容直接处理成json() =>dict

运行结果如下:

在这里插入图片描述

二、爬取豆瓣电影排行榜数据

在地址栏搜索豆瓣电影,打开豆瓣电影排行榜剧情分类,按下 F12 打开抓包工具。
在这里插入图片描述
因为豆瓣电影排行榜的网页是使用的客户端渲染,数据是第二次请求的,所以我们在预览界面只能看到它的框架,而看不到具体数据。在我们的抓包工具中,有一个叫 XHR ,它可以帮我们做一定的筛选
,可以筛选出第二次请求的数据。我们可以看到筛选出来的三项中最后一项包含数据最多,是我们需要的,接下来我们便将这些数据爬取下来。

在这里插入图片描述
打开 Headers 界面,可以看到与前面的 URL 不同,该网页的 URL 是一长串,在?前面的是它的 URL ,?后面的是它的参数。

在这里插入图片描述
往下划,我们可以看到在 Query String Parameters中,参数已经被打包整理好了。
在这里插入图片描述
因此我们可以把这些参数打包放在一个字典里,避免 URL 过于冗长。(注意相关参数一定要用双引号括起来)

同样我们也要进行一个小小的反爬处理,即将 headers 的内容装填成 User-Agent

代码如下:

import requests

url = "https://movie.douban.com/j/chart/top_list"

# 重新封装参数
param = {
    "type": "24",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": "20"
}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.7062 SLBChan/30"
}
resp = requests.get(url=url, params=param, headers=headers)
print(resp.json())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个默默无闻的小程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值