iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python爬虫爬取爱奇艺电影片库首页的实例代码
  • 861
分享到

Python爬虫爬取爱奇艺电影片库首页的实例代码

2024-04-02 19:04:59 861人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

上篇文章给大家介绍了python爬取爱奇艺电影信息代码实例 感兴趣的朋友点击查看下。 今天给大家介绍python爬虫爬取爱奇艺电影片库首页,下面是实例代码,参考下: i

上篇文章给大家介绍了python爬取爱奇艺电影信息代码实例 感兴趣的朋友点击查看下。

今天给大家介绍python爬虫爬取爱奇艺电影片库首页,下面是实例代码,参考下:


import time
import traceback
import requests
from lxml import etree
import re
from bs4 import BeautifulSoup
from lxml.html.diff import end_tag
import JSON
import pyMysql
#连接数据库  获取游标
def get_conn():
    """
    :return: 连接,游标
    """
    # 创建连接
    conn = pymysql.connect(host="82.157.112.34",
                    user="root",
                    passWord="root",
                    db="MovieRankings",
                    charset="utf8")
    # 创建游标
    cursor = conn.cursor()  # 执行完毕返回的结果集默认以元组显示
    if ((conn != None) & (cursor != None)):
        print("数据库连接成功!游标创建成功!")
    else:
        print("数据库连接失败!")
    return conn, cursor
#关闭数据库连接和游标
def close_conn(conn, cursor):
    if cursor:
        cursor.close()
    if conn:
        conn.close()
    return 1
def get_iqy():
    #   获取数据库总数据条数
    conn, cursor = get_conn()
    sql = "select count(*) from movieiqy"
    cursor.execute(sql)     #   执行sql语句
    conn.commit()       #   提交事务
    all_num = cursor.fetchall()[0][0]       #cursor 返回值的类型是一个元祖的嵌套形式 比如( ( ) ,)
    pagenum=int(all_num/48)+1               #这里是计算一个下面循环的起始值    每48个电影分一组
    print(pagenum)
    print("movieiqy数据库有", all_num, "条数据!")


    url = "https://pcw-api.iqiyi.com/search/recommend/list?channel_id=1&data_type=1&mode=11&page_id=1&ret_num=48&session=ee4d98ebb4e8e44c8d4b14fa90615fb7"
    headers = {
        "User-Agent": "Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
    }
    # response=requests.get(url=url,headers=headers)
    # response.encoding="utf-8"
    # page_text=response.text
    # print(page_text)
    """
    """
    #
    temp_list = []      #暂时存放单部电影的数据
    dataRes = []        #每次循环把单部电影数据放到这个list
    for i in range(pagenum+1, pagenum+100):         #循环100-1次
        url = "Https://pcw-api.iqiyi.com/search/recommend/list?channel_id=1&data_type=1&mode=11&page_id=1&ret_num=48&session=ee4d98ebb4e8e44c8d4b14fa90615fb7"
        url_0 = "https://pcw-api.iqiyi.com/search/recommend/list?channel_id=1&data_type=1&mode=11&page_id="
        url_0 = url_0 + str(i) + "&ret_num=48&session=ad1d98bb953b7e5852ff097c088d66f2"
        print(url_0)        #输出拼接好的url
        response = requests.get(url=url_0, headers=headers)
        response.encoding = "utf-8"
        page_text = response.text
        #解析json对象
        json_obj = json.loads(page_text)
        #这里的异常捕获是因为     测试循环的次数有可能超过电影网站提供的电影数 为了防止后续爬到空的json对象报错
        try:
            json_list = json_obj['data']['list']
        except KeyError:
            return dataRes          #json为空 程序结束
        for j in json_list:         #   开始循环遍历json串
            # print(json_list)
            name = j['name']        #找到电影名
            print(name)
            temp_list.append(name)
            #异常捕获,防止出现电影没有评分的现象
            try:
                score = j['score']      #找到电影评分
                print(score)
                temp_list.append(score)
            except KeyError:
                print( "KeyError")
                temp_list.append("iqy暂无评分")            #替换字符串

            link = j['playUrl']             #找到电影链接
            temp_list.append(link)
            # 解析播放状态
            state = []
            pay_text = j['payMarkUrl']          #因为播放状态只有在一个图片链接里有 所以需要使用re解析出类似vip和only(独播)的字样
            if (len(pay_text) == 0):            #如果没有这个图片链接 说明电影是免费播放
                state="免费"
            else:
                find_state = re.compile("(.*?).png")
                state = re.findall(find_state, pay_text)        #正则匹配链接找到vip
                if(len(state)!=0):              #只有当链接不为空再执行
                    # print(state)
                    # 再次解析
                    state = state[0][0:3]       #字符串分片

                    # 这里只输出了三个字符,如果是独播,页面显示的是only,我们设置为”独播“
                    if (state == "onl"):
                        state = "独播"
                    else:
                        state = "VIP"
            # print(state)
            # 添加播放状态
            temp_list.append(state)
            dataRes.append(temp_list)
            # print(temp_list)
            temp_list = []

        print('___________________________')
    return dataRes

def insert_iqy():
    cursor = None
    conn = None
    try:
        count=0
        list = get_iqy()
        print(f"{time.asctime()}开始插入爱奇艺电影数据")
        conn, cursor = get_conn()
        sql = "insert into movieiqy (id,name,score,path,state) values(%s,%s,%s,%s,%s)"
        for item in list:
            print(item)
            count = count + 1
            if (count % 48 == 0):
                print('___________________________')
            #异常捕获,防止数据库主键冲突
            try:
                cursor.execute(sql, [0, item[0], item[1], item[2], item[3] ])
            except pymysql.err.IntegrityError:
                print("重复!跳过!")

        conn.commit()  # 提交事务 update delete insert操作
        print(f"{time.asctime()}插入爱奇艺电影数据完毕")
    except:
        traceback.print_exc()
    finally:
        close_conn(conn, cursor)
    return;

if __name__ == '__main__':
    # get_iqy()
    insert_iqy()

到此这篇关于Python爬虫爬取爱奇艺电影片库首页的实例代码的文章就介绍到这了,更多相关Python爬取爱奇艺电影内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python爬虫爬取爱奇艺电影片库首页的实例代码

本文链接: https://www.lsjlt.com/news/125158.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python爬虫爬取爱奇艺电影片库首页的实例代码
    上篇文章给大家介绍了Python爬取爱奇艺电影信息代码实例 感兴趣的朋友点击查看下。 今天给大家介绍Python爬虫爬取爱奇艺电影片库首页,下面是实例代码,参考下: i...
    99+
    2024-04-02
  • Python趣味爬虫之爬取爱奇艺热门电影
    目录一、首先我们要找到目标二、F12查看网页源代码三、进行代码实现,获取想要资源。四、查看现象一、首先我们要找到目标 找到目标先分析一下网页很幸运这个只有一个网页,不需要翻页。 二...
    99+
    2024-04-02
  • 使用python怎么爬取爱奇艺热门电影
    这篇文章将为大家详细讲解有关使用python怎么爬取爱奇艺热门电影,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、首先我们要找到目标找到目标先分析一下网页(url:https://list...
    99+
    2023-06-15
  • 教你怎么用python爬取爱奇艺热门电影
    目录一、首先我们要找到目标二、F12查看网页源代码三、进行代码实现,获取想要资源。四、查看现象一、首先我们要找到目标 找到目标先分析一下网页(url:https://list.iq...
    99+
    2024-04-02
  • Python爬虫实例:爬取猫眼电影——破
     字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的。 现在貌似不少网站都有采用这种反爬机制,我们通过猫眼...
    99+
    2023-01-30
    爬虫 猫眼 实例
  • python爬虫实战之爬取百度首页的方法
    这篇文章给大家分享的是有关python爬虫实战之爬取百度首页的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代...
    99+
    2023-06-14
  • Python爬虫实现抓取电影网站信息并入库
    目录一.环境搭建1.下载安装包2.修改环境变量3.安装依赖模块二.代码开发三.运行测试1.新建电影信息表2.代码运行四.问题排查和修复1.空白字符报错2.请求报错一.环境搭建 1.下...
    99+
    2024-04-02
  • 用python爬取电脑壁纸实例代码
    目录前言一、用到的工具二、爬取步骤与过程1.用到的库2.解析代码3.最后上全部的代码啦总结前言        &...
    99+
    2024-04-02
  • Python自动爬取图片并保存实例代码
    目录一、准备工作二、代码实现 三、总结一、准备工作 用python来实现对百度图片的爬取并保存,以情绪图片为例,百度搜索可得到下图所示 f12打开源码 在此处可以看到这...
    99+
    2024-04-02
  • 如何使用Python爬虫实现抓取电影网站信息并入库
    这篇文章主要介绍如何使用Python爬虫实现抓取电影网站信息并入库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/...
    99+
    2023-06-29
  • Node.js实现爬取网站图片的示例代码
    目录涉及知识点cheerio简介什么是cheerio 安装cheerio准备工作核心代码示例截图涉及知识点 开发一个小爬虫,涉及的知识点如下所示: https模块,主要是用户获取网络...
    99+
    2024-04-02
  • Python获取时光网电影数据的实例代码
    目录一、前言二、准备2.1 安装库2.2 原理介绍三、实例3.1 完整代码一、前言 有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某...
    99+
    2024-04-02
  • Python爬取腾讯疫情实时数据并存储到mysql数据库的示例代码
    思路: 在腾讯疫情数据网站F12解析网站结构,使用Python爬取当日疫情数据和历史疫情数据,分别存储到details和history两个mysql表。 ①此方法用于爬取每日详细...
    99+
    2024-04-02
  • Python实现抓取腾讯视频所有电影的示例代码
    目录运行环境实现目的与思路目的思路完整代码视频缓存ts文件实现效果运行环境 IDE丨pycharm版本丨Python3.6系统丨Windows 实现目的与思路 目的 实现对腾讯视频目...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作