需求:爬取豆瓣电影中的电影详情数据 ‘#’:为注释
import requests import json if __name__ == '__main__': #url选取于上方的url,将?后面的参数,用param来存储参数。 url = 'https://movie.douban.com/j/new_search_subjects?' #param里面的参数为network所有的参数,用键值对的形式表现出来。 param = { 'sort': 'U', 'range': '0, 10', 'tags':'', 'start': '0',#从第几个电影开始取 'genres': '喜剧', } #UA伪装 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36' } response = requests.get(url=url,params=param,headers=headers) list_data = response.json() fp = open('./douban.json','w',encoding='utf-8') json.dump(list_data,fp=fp,ensure_ascii=False) print('ok')需求:爬取肯德基餐厅查询 https://www.kfc.com.cn/kfccda/index.aspx指定地点的餐厅数据 分析:打开官网,餐厅查询,录入关键字后点击查询按钮后地址栏中的url不变,说明页面进行逐步刷新,是ajax请求。 所以,同豆瓣电影爬取相似。
import requests import json if __name__ == '__main__': #url选取于上方的url,将?后面的参数,用param来存储参数。 url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' # param里面的参数为network所有的参数,用键值对的形式表现出来。 #采用变量定义城市 op = input('enter a city :') param = { 'cname':'', 'pid':'', 'keyword': op, 'pageIndex': '1', 'pageSize': '20' } #UA伪装 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36' } response = requests.get(url=url,params=param,headers=headers) list_data = response.json() fp = open('./kfc store.json','w',encoding='utf-8') json.dump(list_data,fp=fp,ensure_ascii=False) print('ok')