1、导入扩展模块
1# -*- coding: UTF-8 -*- 2# 导入网络请求模块 requests 3import requests 4# 导入 random 模块用来产生随机数 5import random
2、定义爬虫地址、并伪装头部信息
1# 定义请求的 url 接口(需要请求的接口),假设接口 https://movie.douban.com/j/new_search_subjects 2url = 'https://movie.douban.com/j/new_search_subjects' 3 4# 初识 user-agent,事先准备 user-agent 用于头部信息伪装 5# 后续会说到如何生成 user-agent 6user_agent = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 ' 7 'Safari/537.36', 8 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', 9 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 ' 10 'Safari/534.50 ' 11 ] 12 13# 定义请求头部信息(字典类型) 14headers = { 15 # User-Agent 信息用于伪装成用户访问,random.randint(0,2) 随机取出数组中定义好的一个 16 'User-Agent': user_agent[random.randint(0, 2)] 17}
3、封装请求参数 1# 设置请求参数,根据测试 range 必须赋值才可以取到数据 2params = { 3 'sort': '', 4 'range': '0,20', 5 'tags': '', 6 'start': '0', 7 'genres': '爱情', 8}
4、执行请求、并处理返回结果
1# 执行 GET 请求 2response = requests.get(url=url, headers=headers, params=params) 3 4# 打印响应信息,返回为 json 数据 5print response.content 6 7# 使用response.json() 函数进行序列化输出 8data_json = response.json() 9print data_json 10 11# 提取 data_json 中的具体数据 12data_json_array = data_json['data'] 13print data_json_array 14 15# 遍历获取电影名称、评分信息 16for data_line in data_json_array: 17 print '电影名称:', data_line['title'], ' -> 评分:', data_line['rate']
|