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


Posted in Python onMarch 02, 2020

像iqiyi这种视频网站,现在下载视频都需要下载相应的客户端。那么如何不用下载客户端,直接下载非vip视频?

选择你想要爬取的内容

该安装的程序以及运行环境都配置好

下面这段代码就是我在爱奇艺里搜素“英文名”,然后出来的视频,共有20页,那么我们便从第一页开始,解析网页,然后分析

分析每一页网址,找出规律就可以直接得到所有页面

然后根据每一个视频的URL的标签,如'class' 'div' 'href'......通过bs4库进行爬取

而其他的信息则是直接循环所爬取到的URL,在每一个里再通过标签去找

import requests
import pandas as pd
from bs4 import BeautifulSoup

#爬取URL 
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'}
b=[]
for i in range(1,2):
  url="https://so.iqiyi.com/so/q_英文名_ctg_t_0_page_"+str(i)+"_p_1_qc_0_rd__site__m_1_bitrate_"  #共20页,根据每页的网址变换规律进行拼接
  r=requests.get(url,headers=headers)  
  soup=BeautifulSoup(r.text,"html.parser")
  a=soup.findAll('a',{'class':'main-tit'}) 
  for i in a:
    if 'http://www.'in i.get('href')and 'html'in i.get('href'):
      b.append(i.get('href'))
print(b)


#爬取标题
e=[]
for k in b:
  res=requests.get(k,headers=headers)
  Soup=BeautifulSoup(res.text,'html.parser')
  c=Soup.findAll('div',{'class':'feed-title-box'})
  for d in c:
    e.append(d.find('h1').text) 
print(e)

#爬取标题下方描述
f=[]
for j in b:
  res=requests.get(j,headers=headers)
  Soup=BeautifulSoup(res.text,'html.parser')
  c=Soup.findAll('div',{'class':'qy-play-intro-feed'})
  for d in c:
    f.append(d.find('p',{'class':"intro-iterm__block"}).text)
print(f)


#爬取发布时间
h=[]
for j in b:
  res=requests.get(j,headers=headers)
  Soup=BeautifulSoup(res.text,'html.parser')
  c=Soup.findAll('div',{'class':'intro-iterm'})
  for d in c:
    ff=(d.find('span',{'class':"intro-iterm__txt"}))
    if ff==None:
      continue
  h.append(ff.text)
print(h)

# 爬取上传作者
m=[]
for k in b:
  res=requests.get(k,headers=headers)
  Soup=BeautifulSoup(res.text,'html.parser')
  c=Soup.find('div',{'id':'block-P'})
  d=Soup.find('div',{'class':'qy-player-maker'})
  try:
    name=c.get(':uploader').split(',')[1].split(':')[1].replace('"','')#输出是字符串的格式,所以用split切割。replace替换
  except:
    try:
      name=d.get(':uploader').split(',')[1].split(':')[1].replace('"','')
    except:
      m.append("匿名用户")
  m.append(name)
print(m)

上面的代码输出结果便是英文名的所有网址及其视频中的一些信息

这里我需要讲一下的是,为什么在爬取作者信息的模块里我采取了try的方法,因为在我爬取的过程中我发现,有的视频的上传作者在视频左下方,有的在视频的右下方,有的视频干脆没有上传作者。

同样的,你想要爬取其他内容也可以用这种方法获取URL和他的其他信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python操作Excel之xlsx文件
Mar 24 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
Python paramiko使用方法代码汇总
Nov 20 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 Python
详解Python模块化编程与装饰器
Jan 16 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 #Python
Python处理mysql特殊字符的问题
Mar 02 #Python
新手入门学习python Numpy基础操作
Mar 02 #Python
python中数据库like模糊查询方式
Mar 02 #Python
python读取文件指定行内容实例讲解
Mar 02 #Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 #Python
python判断两个序列的成员是否一样的实例代码
Mar 01 #Python
You might like
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
python实现图书借阅系统
2019/02/20 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Python urllib.request对象案例解析
2020/05/11 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
银行实习生的自我评价
2014/01/13 职场文书
30年同学聚会感言
2014/01/30 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
预防传染病方案
2014/06/14 职场文书
迎国庆主题班会
2015/08/17 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
SQLServer常见数学函数梳理总结
2022/08/05 MySQL