当前位置:   article > 正文

豆瓣电影(一):网络爬虫

豆瓣电影(一):网络爬虫

夏日炎炎,屋外三十多度的烈日温度,着实一点出门的欲望都无了,小编还是窝在宿舍里当个“肥宅”吧。豆瓣爬虫属于动静结合的数据类型,即列表页动态、详情页静态。对豆瓣高分电影信息进行详细爬取,并存入Excel表格,后续再对数据进行数据分析,简单可视化展示。

操作环境: Windows10、Python3.6、Pycharm、谷歌浏览器
目标网址: https://movie.douban.com/ (豆瓣电影)
相关文章: 拉钩爬虫腾讯招聘爬虫新笔趣阁爬虫链家网爬虫

一、分析网页

  目标网站:1、点击选电影;2、选择高分电影分类。
在这里插入图片描述

1.1、ajax加载

  随意选择复制一个电影名字段,右键点击选择源码,快捷键Ctrl+F查看数据是否存在。
在这里插入图片描述

1.2、接口链接

  快速寻找ajax加载的接口链接方法:
   1、右键点击检查;
   2、选择Network;
   3、点击XHR;(一般接口链接处于XHR中)
   4、查看Time类型里的最大数值链接
在这里插入图片描述

  接口链接正确,如图可知rate参数为评分,title为电影名,url为电影详情链接。
在这里插入图片描述

1.3、电影详情页

  json数据中的url为电影详情页链接,提取电影详情页中的电影名、导演、编剧、主演、评分等等。
在这里插入图片描述

二、请求响应

  导入爬虫项目需要的库,并设置全局请求头,以便列表页及详情页的调用请求身份。

# 导入爬虫需要的库
import json
import re
import requests
import openpyxl
import time

# 全局请求头  处理基本反爬
HEADERS = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.1、构建params

  get请求携带的params参数,定一个get_params函数写params参数的构建, 传入电影分类与页数,以便每次列表页请求的携带调用。

def get_params(tag,pn):
    '''
    :param tag: 电影分类
    :param pn: 页数
    :return: 返回请求体
    '''
    params = {
     # 请求体
        "type": "movie",
        "tag": str(tag),
        "sort": "recommend",
        "page_limit": "20",
        "page_start": str(pn),
    }
    return params
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

2.2、翻页

  电影列表页为点击“加载更多”翻页,而不是下拉翻页等。只能自己手动查看“豆瓣高分”这一分类的总页数为 25 ,不能像之前的动态项目那样提取json数据中的总数来while循环翻页。

 for pn in range(0,500,20):  # 翻页 间隔20
     # 获取请求体
     params = get_params('豆瓣高分',pn)
  • 1
  • 2
  • 3

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/191171
推荐阅读
相关标签
  

闽ICP备14008679号