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


Posted in Python onMay 20, 2021

一、首先我们要找到目标

找到目标先分析一下网页(url:https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi?.html),很幸运这个只有一个网页,不需要翻页。

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

二、F12查看网页源代码

找到目标,分析如何获取需要的数据。找到href与电影名称

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

三、进行代码实现,获取想要资源。

'''
爬取爱奇艺电影与地址路径

操作步骤
1,获取到url内容

2,css选择其选择内容

3,保存自己需要数据

'''
#导入爬虫需要的包
import requests
from bs4 import BeautifulSoup
#requests与BeautifulSoup用来解析网页的
import time
#设置访问网页时间,防止自己IP访问多了被限制拒绝访问
import re
class Position():

    def __init__(self,position_name,position_require,):#构建对象属性
        self.position_name=position_name
        self.position_require=position_require

    def __str__(self):
        return '%s%s/n'%(self.position_name,self.position_require)#重载方法将输入变量改成字符串形式

class Aiqiyi():
    def iqiyi(self,url):
        head= {
            'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
        }  #模拟的服务器头
        html = requests.get(url,headers=head)
        #headers=hard 让脚本以浏览器的方式去访问,有一些网址禁止以python的反爬机制,这就是其中一个
        soup = BeautifulSoup(html.content, 'lxml', from_encoding='utf-8')  # BeautifulSoup打看网页
        soupl = soup.select(".qy-list-wrap")  # 查找标签,用css选择器,选择自己需要数据 进行选择页面第一次内容(标签要找到唯一的,找id好,如果没有考虑其他标签如class)
        results = []  # 创建一个列表用来存储数据
        for e in soupl:
            biao = e.select('.qy-mod-li')  # 进行二次筛选
            for h in biao:
                p=Position(h.select_one('.qy-mod-link-wrap').get_text(strip=True),
                       h.select_one('.title-wrap').get_text(strip=True))#调用类转换(继续三次筛选选择自己需要内容)
                results.append(p)
        return results  # 返回内容

    def address(self,url):
        #保存网址
        head = {
            'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
        }  # 模拟的服务器头
        html = requests.get(url, headers=head)
        soup = BeautifulSoup(html.content, 'lxml', from_encoding='utf-8')  # BeautifulSoup打看网页
        alist = soup.find('div', class_='qy-list-wrap').find_all("a")  # 查找div块模块下的  a标签
        ls=[]
        for i in alist:
            ls.append(i.get('href'))

        return ls



if __name__ == '__main__':
    time.sleep(2)
    #设置2秒访问一次
    a=Aiqiyi()
    url = "https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi--.html"
    with open(file='e:/练习.txt ', mode='a+') as f:  # e:/练习.txt 为我电脑新建的文件,a+为给内容进行添加,但不进行覆盖原内容。
         for item in a.iqiyi(url):
             line = f'{item.position_name}\t{item.position_require}\n'
             f.write(line)  # 采用方法
             print("下载完成")
    with open(file='e:/地址.txt ', mode='a+') as f:  # e:/练习.txt 为我电脑新建的文件,a+为给内容进行添加,但不进行覆盖原内容。
        for item in a.address(url):
            line=f'https{item}\n'
            f.write(line)  # 采用方法
            print("下载完成")

四、查看现象

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

到此这篇关于教你怎么用python爬取爱奇艺热门电影的文章就介绍到这了,更多相关python爬取电影内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python将字典内容存入mysql实例代码
Jan 18 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
python将一组数分成每3个一组的实例
Nov 14 Python
python儿童学游戏编程知识点总结
Jun 03 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
python操作excel让工作自动化
Aug 09 Python
python 调试冷知识(小结)
Nov 11 Python
Python sys模块常用方法解析
Feb 20 Python
Python devel安装失败问题解决方案
Jun 09 Python
Pytorch使用shuffle打乱数据的操作
May 20 #Python
教你利用Selenium+python自动化来解决pip使用异常
python 提取html文本的方法
May 20 #Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
pytorch 带batch的tensor类型图像显示操作
pytorch 中nn.Dropout的使用说明
May 20 #Python
Python 线程池模块之多线程操作代码
May 20 #Python
You might like
随机头像PHP版
2006/10/09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
openLayer4实现动态改变标注图标
2020/08/17 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python实现自动网页截图并裁剪图片
2018/07/30 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
团员的自我评价
2013/12/01 职场文书
协议书格式模板
2016/03/24 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
Python学习之os包使用教程详解
2022/03/21 Python