基于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 相关文章推荐
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
Python向日志输出中添加上下文信息
May 24 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Flask框架各种常见装饰器示例
Jul 17 Python
使用python爬取抖音视频列表信息
Jul 15 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
python实现网站微信登录的示例代码
Sep 18 Python
为什么说python适合写爬虫
Jun 11 Python
Python接收手机短信的代码整理
Aug 02 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
python3.9.1环境安装的方法(图文)
Feb 02 Python
深入理解python多线程编程
Apr 18 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
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
python去除所有html标签的方法
2015/05/05 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
PyQt5实现简单的计算器
2020/05/30 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
Shell编程面试题
2012/05/30 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
文秘专业应届生求职信范文
2013/11/14 职场文书
财务科科长岗位职责
2014/03/10 职场文书
联谊会主持词
2014/03/26 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
刘公岛导游词
2015/02/05 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书