千家信息网

Python爬虫怎么实现热门电影信息采集

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要介绍"Python爬虫怎么实现热门电影信息采集",在日常操作中,相信很多人在Python爬虫怎么实现热门电影信息采集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2024年11月30日Python爬虫怎么实现热门电影信息采集

这篇文章主要介绍"Python爬虫怎么实现热门电影信息采集",在日常操作中,相信很多人在Python爬虫怎么实现热门电影信息采集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python爬虫怎么实现热门电影信息采集"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、前言

好不容易女神喊我去看电影,但是她又不知道看啥,那么我当然得准备准备~

二、前期准备

1、使用的软件

python 3.8 开源 免费的 (统一 3.8)

Pycharm YYDS python最好用的编辑器 不接受反驳…

2、需要用的模块

requests >>> 数据请求模块 pip install requests

parsel >>> 数据解析模块 pip install parsel

csv

3、模块安装问题

模块安装问题:

1)、如何安装python第三方模块:

第一种:win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车。

第二种:在pycharm中点击Terminal(终端) 输入安装命令

2)安装失败原因:

第一种: pip 不是内部命令

解决方法: 设置环境变量

第二种: 出现大量报红 (read time out)

解决方法: 因为是网络链接超时, 需要切换镜像源。

清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/豆瓣:http://pypi.douban.com/simple/例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

第三种: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入。

解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好,或者你pycharm里面python解释器没有设置好。

4、如何配置pycharm里面的python解释器?

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)

  2. 点击齿轮, 选择add

  3. 添加python安装路径

5、pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件);

  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation;

  3. 选择相应的插件点击 install(安装) 即可;

  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效;

三、思路

爬虫获取数据是要分析服务器返回的数据内容,无论你爬取任何网站数据,都是可以按照这个几步骤来。

1、明确需求

我们要爬取的内容是什么 https://movie.douban.com/top250,要分析我们的想要数据, 可以从哪里获取/哪里来的… (数据来源分析)

用开发者工具进行抓包(数据包)分析,静态网页/网页上面看到的数据内容,在网页源代码里面都有。

2、发送请求

开发者工具里面headers ,对于那个网址发送请求,发送什么样的请求,携带那些请求头参数。

3、获取数据

获取服务器返回的数据内容,看服务器数据格式是什么样的,或者说我们想要的数据是什么样的;

获取文本数据 response.text

获取服务器json字典数据 response.json()

获取二进制数据 response.content

保存视频/音频/图片/特定格式的文件内容, 都是获取二进制数据;

4、解析数据

提供我们想要的数据内容

5、保存数据

保存本地

四、代码部分

import requests  # 数据请求模块 pip install requestsimport parsel  # 数据解析模块 pip install parselimport csv  # 保存表格数据f = open('豆瓣数据.csv', mode='a', encoding='utf-8', newline='')# 快速批量替换 全选内容 使用正则表达式 替换内容csv_writer = csv.DictWriter(f, fieldnames=[    '电影名字',    '导演',    '主演',    '年份',    '国家',    '电影类型',    '评论人数',    '评分',    '概述',    '详情页',])csv_writer.writeheader()for page in range(0, 250, 25):    url = f'https://movie.douban.com/top250?start={page}&filter='    # headers 请求头 用来伪装python代码 为了防止爬虫程序被服务器识别出来,    # User-Agent 浏览器的基本标识 用户代理 直接复制粘贴的    #Python学习交流群872937351 ,免费领取视频/电子书/解答等等    # 披着羊皮的狼  爬虫程序 >>> 狼  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)    #  对象    # css选择器 根据标签属性提取数据    # 第一次解析数据, 获取所有li标签    lis = selector.css('.grid_view li')  # css选择器语法    # selector.xpath('//*[@class="grid_view"]/li') # xpath写法    # [] 列表, 如果说我想要一一提取列表里面的元素 怎么做?    for li in lis:        try:            # span:nth-child(1) 组合选择器  表示的选择第几个span标签            # 1 选择第一个span标签 text 获取标签文本数据            title = li.css('.hd a span:nth-child(1)::text').get()            href = li.css('.hd a::attr(href)').get()  # 详情页            # li.xpath('//*[@class="hd"]/a/span(1)/text()').get()            # get返回字符串数据 getall 是返回列表数据            # get获取第一个标签数据 getall 获取所有的            move_info = li.css('.bd p::text').getall()            actor_list = move_info[0].strip().split('   ')  # 列表索引位置取值            # print(actor_list)            date_list = move_info[1].strip().split('/')  # 列表索引位置取值            director = actor_list[0].replace('导演: ', '').strip()  # 导演            actor = actor_list[1].replace('主演: ', '').replace('/', '').replace('...', '') # 演员            date = date_list[0].strip()  # 年份            country = date_list[1].strip()  # 国家            move_type = date_list[2].strip()  # 电影类型            comment = li.css('.star span:nth-child(4)::text').get().replace('人评价', '')  # 评论人数            star = li.css('.star span:nth-child(2)::text').get()  # 星级            world = li.css('.inq::text').get()  # 概述            # 字符串的高级方法            # replace() 字符串替换的方法  strip() 去除字符串左右两端的空格 split() 分割 之后返回的列表            # 字符串如何去除空格呢?            # print(title, actor_list, date_list)            dit = {                '电影名字': title,                '导演': director,                '主演': actor,                '年份': date,                '国家': country,                '电影类型': move_type,                '评论人数': comment,                '评分': star,                '概述': world,                '详情页': href,            }            csv_writer.writerow(dit)            print(title, director, actor, date, country, move_type, comment, star, world, href, sep=' | ')        except:            pass

到此,关于"Python爬虫怎么实现热门电影信息采集"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数据 模块 选择 电影 内容 爬虫 方法 字符 字符串 服务器 标签 服务 插件 学习 输入 热门 信息 导演 网页 解释器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安装软件连接服务器失败 网络营销软件开发哪个好 猎人加密狗用什么软件开发 ktv服务器上没有优盘 服务器cpu选型 江阴一站式软件开发预算 虚拟机服务器逻辑核查看 山东省互联网网络安全威胁治理 广东省网络安全会议 矿机服务器换了是不是算力高很多 黑客修改数据库密码破解 小度服务器等于多少 网络安全基础知识简短 四川1u机架服务器哪家好 奥的斯怎么进入服务器 网络安全教育周会总结 宝塔分配子域名给其他服务器 软件开发工程师是学什么的 数据库遵守那两个原则 服务器进不去英文 软件开发企业管理痛点 免费数据库服务器api 软件开发学点啥 桓台库存软件开发公司 江苏联想服务器维修维保哪家便宜 大同建网站哪里有服务器 软件开发都需要什么编程语言 金口碑网络技术有限公司 如何利用备份文件恢复数据库 数据库窗体有什么功能
0