• 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定地点的餐厅数据

      1. if __name__ == "__main__":
      2. # UA伪装:将对应的User-Agent封装到一个字典中
      3. headers = {
      4. 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) '
      5. 'Chrome/72.0.3626.121 Safari/537.36 '
      6. }
      7. url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
      8. # 处理url携带的参数:封装到字典中
      9. kw = input('请输入一个地区:')
      10. kfc_list = [] # kfc餐厅地址
      11. for page in range(1, 3):
      12. page = str(page)
      13. data = {
      14. 'cname': '',
      15. 'pid': '',
      16. 'keyword': kw,
      17. 'pageIndex': page,
      18. 'pageSize': '10'
      19. }
      20. # 请求发送
      21. response = requests.post(url=url, data=data, headers=headers)
      22. # 获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型的,才可以使用json())
      23. list_data = response.json()
      24. kfc_list.append(list_data)
      25. # 持久化存储
      26. fileName = kw + 'kfc.json'
      27. fp = open(fileName, 'w', encoding='utf-8')
      28. json.dump(kfc_list, fp=fp, ensure_ascii=False)
      29. count = 1 # 餐厅个数计数
      30. # 打印所有餐厅名称和地址
      31. for dic in kfc_list:
      32. for table1 in dic['Table1']:
      33. print("No." + str(count))
      34. count = count + 1
      35. print('名称:'+table1['storeName'])
      36. print('地址:' + table1['addressDetail'])
      37. print('over!!!')