- 获取url
url = 'https://movie.douban.com/j/search_subjects'
- UA伪装,即User-Agent伪装,加上这个会被当做一个浏览器发来的请求,防止被拦截,其中’User-Agent’后边的内容可以进入浏览器后右键检查或f12,在network中查看
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.197.400 QQBrowser/11.6.5265.400'
}
- 定义url所需的参数,为字典类型,即key:value形式
params = {
' type': 'movie',
'tag': '最新',
'page_limit': '50',
'page_start': '0'
}
- 调用requests的get或post方法,模拟浏览器发送请求
respond = requests.get(url=url,params=params,headers=headers)
- 持久化存储
#对返回的json数据进行处理
dic_obj = respond.json()
fileName = 'movie.json'
#新建一个文件
fp = open(fileName,'w+',encoding='utf-8')
#数据持久化到本地
json.dump(dic_obj,fp,ensure_ascii=False)
- 全部完整代码
import json
'''
1、获取url
2、UA伪装,即User-Agent伪装,加上这个会被当做一个浏览器发来的请求,防止被拦截
3、定义url所需的参数,为字典类型,即key:value形式
4、调用requests的get或post方法,模拟浏览器发送请求
5、对返回的数据进行持久化存储
5.1、如果是页面跳转的话,就保存整个页面为html后缀的文件
5.2、如果是页面局部刷新的话,即返回类型为json文件
5.2.1、第一步,对返回数据进行处理,例如respond.json()
5.2.2、第二步,新建一个后缀为.json的文件
5.2.3、最后,调用json包的dump方法,将第一步中的数据存储到第二步的本地文件中
'''
import requests
def movies():
# url
url = 'https://movie.douban.com/j/search_subjects'
# 携带的参数
params = {
' type': 'movie',
'tag': '最新',
'page_limit': '50',
'page_start': '0'
}
# ua检测
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.197.400 QQBrowser/11.6.5265.400'
}
# 发送请求
respond = requests.get(url=url,params=params,headers=headers)
#对返回的json数据进行处理
dic_obj = respond.json()
fileName = 'movie.json'
#新建一个文件
fp = open(fileName,'w+',encoding='utf-8')
#数据持久化到本地
json.dump(dic_obj,fp,ensure_ascii=False)
print('爬取结束!')
if __name__ == '__main__':
movies()