今天在写一个简单的爬虫程序如下
import requests as rq
import json
post_url="http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx"
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Mobile Safari/537.36'
}
IP = input('请输入需要爬取的IP:')
PageIndex = input('选择从第几页开始爬取:')
pageSize = input('输入需要爬取几页:')
data = {
'keyword': IP,
'pageIndex': PageIndex,
'pageSize': pageSize,
}
response = rq.post(url=post_url,headers=headers,data=data)
page_text=response.text
print(page_text)
结果如图:
原因如下:
1、首先URL中的参数没有复制全
我的 URL:
post_url="http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx"
正确的URL:
post_url="http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
2、参数缺失
我的data参数:
data = {
'keyword': IP,
'pageIndex': PageIndex,
'pageSize': pageSize,
}
正确的data参数
data = {
'cname': '',
'pid': '',
'keyword': IP,
'pageIndex': PageIndex,
'pageSize': pageSize,
}
修改后的代码运行结果如下:
运行结果:
{“Table”:[{“rowcount”:278}],“Table1”:[{“rownum”:1,“storeName”:“开发区上海路”,“addressDetail”:“开发区上海路80号利群时代超市一楼”,“pro”:“24小时,Wi-Fi,点唱机,店内参观,礼品卡,手机点餐”,“provinceName”:“江苏省”,“cityName”:“南通市”},{“rownum”:2,“storeName”:“太仓新区东亭路”,“addressDetail”:“太仓市娄江路与县府街交叉口西南侧(太仓新区上海路北、东亭路东地块)万达广场”,“pro”:“Wi-Fi,点唱机,店内参观,礼品卡,手机点餐”,“provinceName”:“江苏省”,“cityName”:“苏州市”},{“rownum”:3,“storeName”:“动力南广场(汇金奥特莱斯B1层)”,“addressDetail”:“石龙路750-3号上海南站地下商场南馆”,“pro”:“礼品卡”,“provinceName”:“上海市”,“cityName”:“上海市”},{“rownum”:4,“storeName”:“南广场”,“addressDetail”:“秣陵路303号上海火车站西南出口一侧(学生工招募中)”,“pro”:“Wi-Fi,礼品卡”,“provinceName”:“上海市”,“cityName”:“上海市”},{“rownum”:5,“storeName”:“北广场”,“addressDetail”:“秣陵路303号上海站北广场北立面1F大厅入口西侧位置”,“pro”:“Wi-Fi”,“provinceName”:“上海市”,“cityName”:“上海市”},{“rownum”:6,“storeName”:“南站精选(火车站站内)”,“addressDetail”:“沪闵路9001号上海南站候车大厅”,“pro”:“精选店,礼品卡”,“provinceName”:“上海市”,“cityName”:“上海市”},{“rownum”:7,“storeName”:“上海滩”,“addressDetail”:“佘山林湖路888号-1上海滩区5号”,“pro”:“Wi-Fi,精选店,礼品卡”,“provinceName”:“上海市”,“cityName”:“上海市”}]}