认识爬虫:如何使用 requests 模块根据电影类型爬取豆瓣电影排名前20的信息与评分

前往 >> 【阅读原文】

1、导入扩展模块

1# -*- coding: UTF-8 -*-

2# 导入网络请求模块 requests

3importrequests

4# 导入 random 模块用来产生随机数

5importrandom

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 数据

5printresponse.content

6

7# 使用response.json() 函数进行序列化输出

8data_json = response.json()

9printdata_json

10

11# 提取 data_json 中的具体数据

12data_json_array = data_json['data']

13printdata_json_array

14

15# 遍历获取电影名称、评分信息

16fordata_lineindata_json_array:

17print'电影名称:', data_line['title'],' -> 评分:', data_line['rate']

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容