目录
1、实现百度翻译破解
根据搜索的百度翻译网页,右键->检查->Network
我们可以了解到请求数据的地址:https://fanyi.baidu.com/sug、请求数据的方式:POST(请求携带参数,参数为kw:dog)、响应数据的类型:json
代码实现
import json
import requests
if __name__=='__main__':
#1.指定url
post_url='https://fanyi.baidu.com/sug'
#2.进行UA伪装,User-Agent的值可以在网页检查中找到
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
#手动输入要翻译的值
word=input('enter a word:')
#3.post请求参数处理
data={
'kw':word
}
#4.进行请求发送
response=requests.post(url=post_url,data=data,headers=headers)
#5.获取响应数据,json()返回的是obj,只有确认了响应数据类型是json数据才能用json()
dic_obj=response.json()
#5.持久化存储
filename=word+'.json'
fp=open(filename,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print('over!!!')
爬取后的结果文件:
json格式化校验后的结果
2、爬取豆瓣电影的详情数据
例如:爬取豆瓣电影中喜剧电影的详情数据
通过右键页面检查,当页面下拉触底时可以观察到如下信息,请求数据的地址、请求数据的方式、响应数据的类型,请求数据携带的参数为(type、interval_id、action、start、limit)
代码实现
import json
import requests
if __name__=='__main__':
#1.指定url
url='https://movie.douban.com/j/chart/top_list'
#2.进行UA的伪装
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
# 3.post请求参数处理
param = {
'type': '24',
'interval_id': '100:90',
'action': '',
'start': '0', # 位置从0开始即为第一个
'limit': '20',
}
# 4.进行请求发送
response=requests.get(url=url,params=param,headers=headers)
# 5.获取响应数据,json()返回的是obj
list_data=response.json()
# 6.持久化存储
fp=open('./douban.json','w',encoding='utf-8')
json.dump(list_data,fp=fp,ensure_ascii=False)
print('over!!!')
爬取后的结果文件:
json格式化校验后的结果:
3、爬取肯德基餐厅查询中指定城市的餐厅
在网页中搜索"肯德基"官方进入->页面最下面的餐厅查询
->输入查询城市
再进入网页检查->Network查询写代码时需要知道的信息
地址请求携带的参数
代码实现
import json
import requests
if __name__=='__main__':
#1.指定url
url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
#2.进行UA的伪装
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
address = input('enter a word:')
# 3.post请求参数处理
data = {
'cname': '',
'pid': '',
'keyword': address,
'pageIndex': '2',
'pageSize': '10',
}
# 4.进行请求发送
response=requests.post(url=url,data=data,headers=headers)
page_text=response.text
with open('./kendeji.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print("爬取数据结束")
爬取结果:
格式校验后的结果