教你怎么用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类方法与对象方法
Mar 15 Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
Python格式化日期时间操作示例
Jun 28 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
python中__slots__节约内存的具体做法
Jul 04 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
js同源策略详解
2015/05/21 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
员工自我鉴定范文
2013/10/06 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
留学顾问岗位职责
2014/04/14 职场文书
争先创优演讲稿
2014/09/15 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python