python爬虫入门实战(一)
- post请求方式爬取肯德基配送地址
解析url,通过post方式准确发送data信息是本次爬虫实战的重难点。代码如下:
# 肯德基店铺位置案例
"""
需求:根据用户输入的页码的起始位置,
把每页的餐厅信息存储到一个独立的json文件中
"""
from urllib import request
from urllib import parse
import json
post_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'
start_page = int(input('请输入起始页:'))
end_page = int(input('请输入结束页:'))
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
}
for page in range(start_page, end_page + 1):
p = str(page)
data = {
'cname': '北京',
'pid': '',
'pageIndex': p,
'pageSize': '10'
}
data = parse.urlencode(data).encode('utf-8')
req = request.Request(url=post_url,
data=data,
headers=headers)
response = request.urlopen(req)
content = response.read().decode('utf-8')
# 保存为本地json文件
filename = 'data/KFC/{}.json'.format(p)
json.dump(content, open(filename, 'w', encoding='utf-8'),
ensure_ascii=False)
由于比较简单,我就不多解释了,,,关掉电脑,,,今天的修行到此结束。。。