项目三:爬取视频磁力链接
项目三:爬取视频磁力链接
标签(空格分隔): 爬虫 BeautifulSoup
—具体技术实现原理类似项目二
1. 项目任务分析
类似上一个小项目中爬取图片的技术原理,本次小项目尝试对相同网站上的可供下载视频的磁力链接进行爬取
2. 项目功能分析
2.1 爬取视频列表
网页上视频信息如上图所示,所以要先定义一个模块来获取如图所示的视频列表信息,查看网页源代码如下图所示
显然每一个视频名称保存在a.string
即标签的非属性字符串里,而视频所在链接保存在a.attrs['href']
里,那么可以很容易得到视频名称和视频所在链接的信息,将这些信息保存在一个字典里,共后续爬取使用
2.2 爬取视频磁力链
根据上一步得到的视频链接,跳转至相应页面的结果如下图所示
可以看到每个视频页面上有磁力链,所以可以查看源代码来找到磁力链的具体获取方式,查看源代码如下图所示
通过content = soup.find('div', attrs={'class':'content'})
语句来找到包含有磁力链接的标签,因为该磁力链接没有保存在某个字标签的非属性字符串里,也不是某个子标签的某种属性,所以之前的方法不适用。那么这里可以使用tempList = content.text.split('\n')
得到content
标签里面包含的所有字符串并保存在列表中,再利用正则表达式对符合一定规则的列表各个元素进行匹配,得到正确的磁力链
2.3 文件存取
在得到视频的名称与磁力链并保存在字典里之后,需要将字典内容保存在文本文件中,本次小项目就事先建立好一个文本文件,直接将字典里的内容写入该文件即可。这个模块中的重点是对字典的遍历
3. 完整代码
import requests
from bs4 import BeautifulSoup
import redef getHTMLText(url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def getMagnetList(magnetURL, magnetsList):html = getHTMLText(magnetURL)soup = BeautifulSoup(html, 'html.parser')# 抽取包含磁力文件名称和链接的标签,保存在列表里title = soup.find_all('a', attrs={'class':'title'})for t in title:try:link = 'http://www.99rblc.com' + t.attrs['href']magnetsList.append(link)except:continuedef getMagnetInfo(magnetsDict, magnetsList):for magnet in magnetsList:html = getHTMLText(magnet)try:if html == "":continuesoup = BeautifulSoup(html, 'html.parser')# 磁力文件名称title = soup.find('div', attrs={'class':'title'})magnetName = title.text.split('\n')[1]print( "已爬到资源 : " + magnetName + '\n' )print( "继续爬取该资源的磁力链..." + '\n' )# 磁力链接内容content = soup.find('div', attrs={'class':'content'})tempList = content.text.split('\n')for item in tempList:if re.findall(r"^magnet[A-Za-z0-9:?= ]+$", item) == []:continuemagnetContent = re.findall(r"^magnet[A-Za-z0-9:?= ]+$", item)[0]print( "爬到磁力链为 : " + magnetContent + '\n\n\n' )magnetsDict[magnetName] = magnetContentexcept:continuedef saveMagnet(magnetsDict):path = 'D://MagnetInfo//magnet.txt'f = open(path, 'a')for key in magnetsDict:f.write( "电影名称 : " + key + '\n' )f.write( "磁力链接 : " + magnetsDict[key] + '\n\n\n' )f.close()def main():depth = 5for i in range(depth):print( "开始爬取第" + str(i+1) + "页" + '\n' )magnetURL = 'http://www.99rblc.com/ozgq/38/' + str(i+1) + '.htm'magnetsList = []magnetsDict = {}getMagnetList(magnetURL, magnetsList)getMagnetInfo(magnetsDict, magnetsList)saveMagnet(magnetsDict)main()
项目三:爬取视频磁力链接相关推荐
- Python简单爬取电影磁力链接
Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...
- 【爬虫】从B站或央视网爬取视频下载链接
import requests from bs4 import BeautifulSoup import re import senddetail import sys import pandas a ...
- Go语言爬取网站磁力链接
package mainimport ("bufio""fmt""io""io/ioutil""net/htt ...
- python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...
前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣<哪吒之魔童降世> 短评,然后下载在exce ...
- python画哪吒_Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评
前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣<哪吒之魔童降世> 短评,然后下载在exce ...
- 爬虫概念与编程学习之如何爬取视频网站页面(三)
先看,前一期博客,理清好思路. 爬虫概念与编程学习之如何爬取网页源代码(一) 爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二) 不多说,直接上代码. 编写代码 运行 <! ...
- 如何用 Python + Scrapy 爬取视频?
今天将带大家简单了解Scrapy爬虫框架,并用一个真实案例来演示代码的编写和爬取过程. 一.scrapy简介 1. 什么是Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框 ...
- Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法
俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...
- python实战-HTML形式爬虫-批量爬取电影下载链接
文章目录 一.前言 二.思路 1.网站返回内容 2.url分页结构 3.子页面访问形式 4.多种下载链接判断 三.具体代码的实现 四.总结 一.前言 喜欢看片的小伙伴,肯定想打造属于自己的私人影院 ...
最新文章
- php 尾递归,关于尾递归的使用详解
- 069_html统一资源定位器
- 那一年,我考入了西北师范大学GIS专业,然而我很迷茫,GISer的职业规划到底是怎样的?
- 批处理ping指定ip列表
- html鼠标滚动图片折叠,鼠标滑过图片3D折叠效果
- Java容器-面试题
- 无法装载这个对象_面试官:别的我不管,这个JVM虚拟机内存模型你必须知道
- AAAI'22 | 基于情感分析的开放域对话系统
- SAP 系统License查看申请及导入
- 更新visual studio 报错The dependent package of ‘Microsoft.Net.PackageGroup.4.6.Redist‘
- Unity3D自动寻路之Nav Mesh Agent(导航网格代理)
- 面试分享:一年经验初探阿里巴巴前端社招
- dell G7 7588安装ubuntu双系统
- Excel 数据解析异常
- 外贸B2C独立站如何做?
- web项目的启动时文件加载顺序
- 中国修边压力机行业市场供需与战略研究报告
- Windows : bat脚本
- Java虚拟机这一块 —— JVM 调优和深入了解性能优化
- 数据库层次模型的优缺点
热门文章
- csdn博客名字修改
- HYSBZ - 1086:王室联邦(树上分块?)
- php链接mysql 老是die_php连接MySQL时, 为什么die(错误信息: . $conn-connect_error) 不返回错误信息?...
- Kafka3.x核心速查手册三、服务端原理篇-2、Broker选举机制
- FastDFS集群环境搭建(五)FastDFS监控器fdfs_monitor
- 软件工程经济学复习笔记
- 艾略特波段理论实战(1):8浪
- 有限体积法(12)——SIMPLE算法
- NLP - 微信好友个性签名情感分析( 基于Python开源库snownlp )
- 收敛速度:线性收敛,超线性收敛,r 阶收敛