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

目录
  • 一、前言
  • 二、前期准备
    • 1、使用的软件
    • 2、需要用的模块
    • 3、模块安装问题
    • 4、如何配置pycharm里面的python解释器?
    • 5、pycharm如何安装插件?
  • 三、思路
    • 1、明确需求
    • 2、发送请求
    • 3、获取数据
    • 4、解析数据
    • 5、保存数据
  • 四、代码部分 

一、前言

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

二、前期准备

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 requests
import parsel  # 数据解析模块 pip install parsel
import 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)
    # <Selector xpath=None data='<html lang="zh-CN" class="ua-windows ...'> 对象    # 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爬虫实现热门电影信息采集的文章就介绍到这了,更多相关Python爬虫采集信息内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python抓取电影天堂电影信息的代码

    Python2.7Mac OS 抓取的是电影天堂里面最新电影的页面.链接地址: http://www.dytt8.net/html/gndy/dyzz/index.html 获取页面的中电影详情页链接 import urllib2 import os import re import string # 电影URL集合 movieUrls = [] # 获取电影列表 def queryMovieList(): url = 'http://www.dytt8.net/html/gndy/dyzz/i

  • Python实现的爬取豆瓣电影信息功能案例

    本文实例讲述了Python实现的爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 本案例的任务为,爬取豆瓣电影top250的电影信息(包括序号.电影名称.导演和主演.评分以及经典台词),并将信息作为字典形式保存进txt文件.这里只用到requests库,没有用到beautifulsoup库 step1:首先获取每一页的源代码,用requests.get函数获取,为了防止请求错误,使用try...except.. def getpage(url): try: res=requests.get

  • 一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息

    概述 这是一个简单的python爬虫程序,仅用作技术学习与交流,主要是通过一个简单的实际案例来对网络爬虫有个基础的认识. 什么是网络爬虫 简单的讲,网络爬虫就是模拟人访问web站点的行为来获取有价值的数据.专业的解释:百度百科 分析爬虫需求 确定目标 爬取豆瓣热度在Top100以内的电影的一些信息,包括电影的名称.豆瓣评分.导演.编剧.主演.类型.制片国家/地区.语言.上映日期.片长.IMDb链接等信息. 分析目标 1.借助工具分析目标网页 首先,我们打开豆瓣电影·热门电影,会发现页面总共20部

  • Python爬取爱奇艺电影信息代码实例

    这篇文章主要介绍了Python爬取爱奇艺电影信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,使用库 1.requests 2.re 3.json 二,抓取html文件 def get_page(url): response = requests.get(url) if response.status_code == 200: return response.text return None 三,解析html文件 我们需要的电影信

  • Python爬虫实现的根据分类爬取豆瓣电影信息功能示例

    本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口: if __name__ == '__main__': main() #! /usr/bin/python3 # -*- coding:utf-8 -*- # author:Sirius.Zhao import json from urllib.parse import quote from urllib.request import urlopen from urllib.reque

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

    目录 一.前言 二.前期准备 1.使用的软件 2.需要用的模块 3.模块安装问题 4.如何配置pycharm里面的python解释器? 5.pycharm如何安装插件? 三.思路 1.明确需求 2.发送请求 3.获取数据 4.解析数据 5.保存数据 四.代码部分  一.前言 好不容易女神喊我去看电影,但是她又不知道看啥,那么我当然得准备准备~ 二.前期准备 1.使用的软件 python 3.8 开源 免费的 (统一 3.8) Pycharm YYDS python最好用的编辑器 不接受反驳- 2

  • Python爬虫爬取电影票房数据及图表展示操作示例

    本文实例讲述了Python爬虫爬取电影票房数据及图表展示操作.分享给大家供大家参考,具体如下: 爬虫电影历史票房排行榜 http://www.cbooo.cn/BoxOffice/getInland?pIndex=1&t=0 Python爬取历史电影票房纪录 解析Json数据 横向条形图展示 面向对象思想 导入相关库 import requests import re from matplotlib import pyplot as plt from matplotlib import font

  • Python爬虫实现vip电影下载的示例代码

    爬虫目的 实现对各大视频网站vip电影的下载,因为第三方解析网站并没有提供下载的渠道,因此想要实现电影的下载. 实现思路 1.选择一个合适的vip解析网站,这里选择了无名小站的接口,因为尝试了很多网站,有些网站想要爬取很困难,无名小站相对简单,接口为www.wmxz.wang/video.php?url=[vip电影的链接] 2.利用Fiddler进行抓包,模拟浏览器发送post请求,获取电影实际下载地址. 3.使用PyQt5进行包装,实现多样化的功能.(可选) 页面分析 我使用Fiddler抓

  • Python爬虫获取豆瓣电影并写入excel

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?start=0 后面的参数0表示从第几个开始,如0表示从第一(肖申克的救赎)到第二十五(触不可及),https://movie.douban.com/top250?start=25表示从第二十六(蝙蝠侠:黑暗骑士)到第五十名(死亡诗社).等等, 所以可以用一个步长为25的range的for循环参数 复制代

  • Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下python模拟登陆,网上关于这部分的资料很多,很多demo都是登陆知乎的,原因是知乎的登陆比较简单,只需要post几个参数,保存cookie.而且还没有进行加密,很适合用来做教学.我也是是新手,一点点的摸索终于成功登陆上了知乎.就通过这篇文章分享一下学习这部分的心得,希望对那些和我一样的初学者

  • Python趣味爬虫之爬取爱奇艺热门电影

    一.首先我们要找到目标 找到目标先分析一下网页很幸运这个只有一个网页,不需要翻页. 二.F12查看网页源代码 找到目标,分析如何获取需要的数据.找到href与电影名称 三.进行代码实现,获取想要资源. ''' 操作步骤 1,获取到url内容 2,css选择其选择内容 3,保存自己需要数据 ''' #导入爬虫需要的包 import requests from bs4 import BeautifulSoup #requests与BeautifulSoup用来解析网页的 import time #设

  • 教你怎么用python爬取爱奇艺热门电影

    一.首先我们要找到目标 找到目标先分析一下网页(url:https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi–.html),很幸运这个只有一个网页,不需要翻页. 二.F12查看网页源代码 找到目标,分析如何获取需要的数据.找到href与电影名称 三.进行代码实现,获取想要资源. ''' 爬取爱奇艺电影与地址路径 操作步骤 1,获取到url内容 2,css选择其选择内容 3,保存自己需要数据 ''' #导入爬虫需要的包 import requ

  • 使用Python多线程爬虫爬取电影天堂资源

    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. 先来简单介绍一下,网络爬虫的基本实现原理吧.一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点.这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务

随机推荐