【简介】
利用 Python 的 requests 库实现循环爬取某餐厅在北京的名单,并将抓取的数据保存为 JSON 格式的文件。
1. 导入模块以及所需要用到的库
本项目使用的是 requests
库和 json
库,因此需要导入这两个库。
import json
import requests
2.构造请求参数并发送请求
post_url
:请求参数的网址
headers
:UA伪装参数
data
:为响应所携带的参数
post_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57'
}
data = {
'cname': '',
'pid': '',
'keyword': '北京',
'pageIndex': '1',
'pageSize': '10',
}
resource=requests.post(url=post_url,data=data,headers=headers)
3.最后数据持久化存储
将resource
获得的参数转换成json
格式,将获得的数据持久化存储到kfc
文件中
res=resource.json()
fp = open('kfc.json', 'w', encoding='utf-8')
json.dump(res, fp=fp, ensure_ascii=False)
print(res)
4.完整代码
import json
import requests
if __name__ == '__main__':
post_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57'
}
data = {
'cname': '',
'pid': '',
'keyword': '北京',
'pageIndex': '1',
'pageSize': '10',
}
resource=requests.post(url=post_url,data=data,headers=headers)
res=resource.json()
fp = open('kfc.json', 'w', encoding='utf-8')
json.dump(res, fp=fp, ensure_ascii=False)
print(res)