您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 0浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

用Python爬取了上万部电影的排名,周末周末好带女神一起去

嗨学编程 发布时间:2021-12-07 16:59:17 ,浏览量:0

文章目录
  • 一、写在前面
  • 二、准备工作
    • 1、使用的软件
    • 2、使用的模块
    • 3、爬虫思路
      • 1. 明确需求
      • 2. 发送请求 (开发者工具里面headers)
      • 3. 获取数据
      • 4. 解析数据
      • 5. 保存数据
  • 三、代码解析
    • 1、导入模块
    • 2、创建文件
    • 3、获取数据
    • 4、解析数据
    • 5、写入数据
    • 6、输出数据
  • 四、写在最后

一、写在前面

好不容易女神喊我去看电影,但是她问我准备看什么,那我不得好好准备准备~ 在这里插入图片描述

二、准备工作 1、使用的软件
  • python 3.8 (开源 免费的)
  • Pycharm (YYDS python最好用的编辑器 不接受反驳…)

软件及安装讲解:软件安装包/安装视频讲解 在这里插入图片描述

2、使用的模块
  • requests >>> 数据请求模块 pip install requests
  • parsel >>> 数据解析模块 pipinstall parsel
  • csv 模块安装:如何安装python模块, python模块安装失败的原因以及解决办法 在这里插入图片描述
3、爬虫思路

无论你爬取任何网站数据,都是可以按照这个几步骤来。

1. 明确需求

我们要爬取的内容是什么 https://movie.douban.com/top250 要分析我们的想要数据,可以从哪里获取,哪里来的… (数据来源分析) 用这个开发者工具进行抓包(数据包)分析

  • 静态网页:网页上面看到的数据内容,在网页源代码里面都有
  • 动态网站:抓包分析
2. 发送请求 (开发者工具里面headers)

对于那个网址发送请求,发送什么样的请求,携带那些请求头参数。

3. 获取数据

获取服务器返回的数据内容,看服务器数据格式是什么样的,或者说我们想要的数据是什么样的; 获取文本数据 response.text ; 获取服务器json字典数据 response.json() ; 获取二进制数据 response.content 保存视频/音频/图片/特定格式的文件内容,都是获取二进制数据;

4. 解析数据

提供我们想要的数据内容

5. 保存数据

保存本地 在这里插入图片描述

三、代码解析 1、导入模块

导入一下我们需要用到的模块

import requests  # 数据请求模块 pip install requests
import parsel  # 数据解析模块 pip install parsel
import csv  # 保存表格数据
2、创建文件

快速批量替换 全选内容 使用正则表达式 替换内容

f = open('豆瓣数据.csv', mode='a', encoding='utf-8', newline='')  

csv_writer = csv.DictWriter(f, fieldnames=[
    '电影名字',
    '导演',
    '主演',
    '年份',
    '国家',
    '电影类型',
    '评论人数',
    '评分',
    '概述',
    '详情页',
])
csv_writer.writeheader()
3、获取数据
for page in range(0, 250, 25):
    url = f'https://movie.douban.com/top250?start={page}&filter='
    # headers 请求头 用来伪装python代码 为了防止爬虫程序被服务器识别出来,
    # User-Agent 浏览器的基本标识 用户代理 直接复制粘贴的
    # 披着羊皮的狼  爬虫程序 >>> 狼  headers >>> 羊皮  服务器数据 >>> 羊圈
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
    # 发送请求 get
    # 通过requests数据请求模块里面get请求方法 对于 url以及发送请求并且携带header请求头, 最后用response变量接收返回数据
    response = requests.get(url=url, headers=headers)
    # 获取数据
    # print(response.text)
    # 解析数据 re正则表达式 css选择器 xpath 那一种更方便 更加舒服 就用哪一个
    # json 键值对取值
    # 提取我们想要的数据内容
    # 把获取下来的 response.text 网页字符串数据 转成selector 对象
    selector = parsel.Selector(response.text)
    #             
关注
打赏
1663681728
查看更多评论
0.0502s