ajax数据处理(一)实战

基于ajax的get请求

-需求:抓取豆瓣电影上电影详情的数据

import requests

url = 'https://movie.douban.com/j/chart/top_list?'

#封装ajax的get请求中携带的参数
data={
'type': '13',
'interval_id': '100:90',
'action': '',
'start': '100', #改变起始值就能爬取到不同的数据
'limit': '20'
}
#自定义请求头信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
}

response=requests.get(url,headers=headers,params=data)
print(response.text)

基于ajax的post请求

- 需求:爬去肯德基城市餐厅位置数据

import requests
#基于ajax post请求
url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
}
data={
'cname':'',
'pid': '',
'keyword': '上海', #在哪里
'pageIndex': '1',  #第几页
'pageSize': '10'  #请求多少个数据
}
response=requests.post(url,headers=headers,data=data)
print(response.text)

#项目实战(爬取指定的页面,关键字,并存储下来)

import requests
import os

#创建一个文件夹
if not os.path.exists('./pages'):
    os.mkdir('./pages')
    
word = input('enter a word:')

#动态指定页码的范围
start_pageNum = int(input('enter a start pageNum:'))
end_pageNum = int(input('enter a end pageNum:'))
#自定义请求头信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
}
#1.指定url:设计成一个具有通用的url
url = 'https://zhihu.sogou.com/zhihu'
for page in range(start_pageNum,end_pageNum+1):
    param = {
        'query':word,
        'page':page,
        'ie':'utf-8'
    }
    response = requests.get(url=url,params=param,headers=headers)
    
    #获取响应中的页面数据(指定页码(page))
    page_text = response.text
    
    #进行持久化存储
    fileName = word+str(page)+'.html'
    filePath = 'pages/'+fileName
    with open(filePath,'w',encoding='utf-8') as fp:
        fp.write(page_text)
        print('第%d页数据写入成功'%page)

猜你喜欢

转载自www.cnblogs.com/jianxiang/p/10923784.html
今日推荐