一、实例运用-1
抓取和保存百度翻译结果
1.明确实现需求的步骤
· 指定目标URL
· 弄清楚百度翻译的网页工作基本原理
· 发送请求抓取数据
· 将得到的数据保存到本地文件夹中
2.逻辑分析
· 目标URL :https://fanyi.baidu.com/sug
· 弄清楚百度翻译的网页工作基本原理
a.首先我们通过网页抓包工具找到存储数据的数据包,如下图所示
b.在抓包工具中点击payload选项卡,发现其中的参数正是我们要翻译的内容:preview
c.然后点击Headers选项卡,找到其中的URL即为目标URL:https://fanyi.baidu.com/sug 同时发现发送的请求为post请求
3.使用代码实现需求
import json
import requests
# 由于保存到本地的数据类型为Json类型,故需要安装json模块(pip install json)
post_url = 'https://fanyi.baidu.com/sug'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'
}
# 输入要翻译的内容作为post请求的参数
word = input('please enter a word:')
data = {'kw': word}
response = requests.post(url=post_url, data=data, headers=headers)
dic_obj = response.json() # 把json格式的数据转换为字典格式
filename = word + '.json'
# 持久化存储数据
fp = open(filename, 'w', encoding='utf-8')
json.dump(dic_obj, fp=fp, ensure_ascii=False)
print("finished")
4.将得到的数据保存到本地文件夹中
保存的数据类型为json类型,由于json类型数据在python爬虫中很重要,所以大家要清楚其中的用法。
二、实例运用-2
抓取和保存肯德基的门店信息
1.明确实现需求的步骤
· 指定目标URL
· 弄清楚网页工作基本原理
· 发送请求抓取数据
· 将得到的数据保存到本地文件夹中
2.逻辑分析
· 目标URL :http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx
· 弄清楚百度翻译的网页工作基本原理
a.找到存放肯德基门店信息的数据包
b.分析得到数据的请求方式和参数
3.代码实现需求并保存得到的数据
import json
import requests
post_url = ' http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'}
keyword = input("请输入要查询的城市名称:")
data = {'cname': '',
'pid': '',
'op': 'keyword',
'keyword': keyword,
'pageIndex': '1',
'pageSize': '10'
}
response = requests.post(url=post_url, data=data, headers=headers)
# 封装函数
def kfc_json():
print(type(response)) # <class 'requests.models.Response'>
page_json = response.json()
filename = keyword + '.json'
fp = open(filename, 'w', encoding='utf-8')
json.dump(page_json, fp=fp, ensure_ascii=False)
print(page_json)
# 调用函数
kfc_json()
print('over!')