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

上篇文章给大家介绍了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爬取爱奇艺电影内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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爬虫进阶之爬取某视频并下载的实现

    这几天在家闲得无聊,意外的挖掘到了一个资源网站(你懂得),但是网速慢广告多下载不了种种原因让我突然萌生了爬虫的想法. 下面说说流程: 一.网站分析 首先进入网站,F12检查,本来以为这种低端网站很好爬取,是我太低估了web主.可以看到我刷新网页之后,出现了很多js文件,并且响应获取的代码与源代码不一样,这就不难猜到这个网站是动态加载页面. 目前我知道的动态网页爬取的方法只有这两种:1.从网页响应中找到JS脚本返回的JSON数据:2.使用Selenium对网页进行模拟访问.源代码问题好解决,重要的

  • 使用Python爬虫爬取小红书完完整整的全过程

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python进击者 ,作者kuls Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space.bilibili.com/523606542 小红书 首先,我们打开之前大家配置好的charles 我们来简单抓包一下小红书小程序(注意这里是小程序,不是app) 不选择app的原因是,小红书的App有点难度,参照网上的一些思路,还是选择了小程序 1

  • python爬虫爬取网页数据并解析数据

    1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. 2.网络爬虫的功能 网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些金融信息,并进行投资分析等. 有时,我们比较喜欢的新闻网站可能有几个,每次都要分别

  • Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬虫提取百度搜索内容,同时再进一步提取内容分析就可以简便搜索过程.详细案例如下: 代码如下 # coding=utf8 import urllib2 import string import urllib import re import random #设置多个user_agents,防止百度限制I

  • 基于Python爬取爱奇艺资源过程解析

    像iqiyi这种视频网站,现在下载视频都需要下载相应的客户端.那么如何不用下载客户端,直接下载非vip视频? 选择你想要爬取的内容 该安装的程序以及运行环境都配置好 下面这段代码就是我在爱奇艺里搜素"英文名",然后出来的视频,共有20页,那么我们便从第一页开始,解析网页,然后分析 分析每一页网址,找出规律就可以直接得到所有页面 然后根据每一个视频的URL的标签,如'class' 'div' 'href'......通过bs4库进行爬取 而其他的信息则是直接循环所爬取到的URL,在每一个

  • Python爬虫爬取Bilibili弹幕过程解析

    先来思考一个问题,B站一个视频的弹幕最多会有多少? 比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的. 也就是说,有一个视频地址为https://www.bilibili.com/video/av67946325,你如果直接去requests.get这个地址,里面是不会有弹幕的,回想第一篇说到的携程异步加载数据的方式,B站的弹幕也一定是先加载当前视频的界面,然后再异步填充弹幕的. 接下来我们就可以打开火狐浏览器(平常可以火狐谷歌控制台都使用,因为谷歌里面因为插件

  • 如何使用python爬虫爬取要登陆的网站

    你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作..... 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 把这几招传授给你 让你以后从容应对 登录的常见方法无非是这两种 1.让你输入帐号和密码登录 2.让你输入帐号密码+验证码登录 今天 先跟你说说第一种 需要验证码的咱们下一篇再讲 第一招 Cookie大法 你平常在上某个不为人知的网站的时候 是不是发现你只要登录一次 就可以一直看到你想要的内容 过了一阵子才需要再次登录 这就是因为 Cookie 在做怪 简单来说 就是

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

    上篇文章给大家介绍了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 pymys

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

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

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

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

  • 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获取爱奇艺电视剧弹幕数据的示例代码

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于数据STUDIO,作者龙哥带你飞 Python分析抖音用户行为数据视频讲解地址 https://www.bilibili.com/video/BV1yp4y1q7ZC/ 数据获取是数据分析中的重要的一步,数据获取的途径多种多样,在这个信息爆炸的时代,数据获取的代价也是越来越小.因此如此,仍然有很多小伙伴们无法如何获取有用信息.此处以最近的热播排行榜第一名的<流金岁月>为例,手把手

  • python爬虫爬取淘宝商品信息

    本文实例为大家分享了python爬取淘宝商品的具体代码,供大家参考,具体内容如下 import requests as req import re def getHTMLText(url): try: r = req.get(url, timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" def parasePage(ilt, html): tr

  • python爬虫爬取淘宝商品信息(selenum+phontomjs)

    本文实例为大家分享了python爬虫爬取淘宝商品的具体代码,供大家参考,具体内容如下 1.需求目标 : 进去淘宝页面,搜索耐克关键词,抓取 商品的标题,链接,价格,城市,旺旺号,付款人数,进去第二层,抓取商品的销售量,款号等. 2.结果展示 3.源代码 # encoding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') import time import pandas as pd time1=time.time()

  • Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request.urlopen(url).read() return html print(getHtml(http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%A3%81%E7%BA%B8&ct=201326592&am

随机推荐