千里之行,始于足下。python 爬虫 requestes 模块(5)
2021/4/19 1:25:11
本文主要是介绍千里之行,始于足下。python 爬虫 requestes 模块(5),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
肯德基餐厅地址查询
前面我们学习了破解百度翻译,知道了 AJAX 的工作原理和爬取,那么我们今天就来巩固我们的学习成果吧。
首先我们打开肯德基的官网,点击 “餐厅查询”
然后是没有地址的网页,然后我们输入地址
我们发现不论有没有搜索,网址都没有发生变化,这说明肯德基官网的地址查询是通过 AJAX 实现的,知道了这样一点我们就可以使用抓包工具进行分析了。
我们可以从抓包工具中找到请求的 url 和相对应的请求命令和数据类型。
我们发现这是一个 json 串,我们还需要像上次破解百度翻译一样先把 json 串爬取下来,再在线解析吗?答案当然是否定的,我们可以在抓包工具的 response 中得到目前的 json,然后在线解析。
欧克,那么我就可以开始写爬取肯德基餐厅地址的代码了
import requests if __name__ == "__main__": # 指定 URL url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword" # UA 伪装 header = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" } # 数据 kd = input("需要查询的地点:") data = { "cname": "", "pid": "", "keyword": kd , # 要搜索的地址 "pageIndex": "1" , # 要爬取的网页的页码 "pageSize": "10" # 每一页的数量 } # 发送请求 for i in range(1, 3): # 爬取两页 data["pageIndex"] = str(i) response = requests.post(url = url, data = data, headers = header).json() page = response["Table1"] # 存储 for detail in page: with open("./肯德基地址.txt", "a", encoding = "utf-8") as fp: fp.write("storeName:" + detail["storeName"] + "\n" + "addressDetail:" + detail["addressDetail"] + "\n" + "\n") print("over!!!")
打开保存的文件如下
说明爬取成功
这篇关于千里之行,始于足下。python 爬虫 requestes 模块(5)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python