项目三:爬取视频磁力链接

标签(空格分隔): 爬虫 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()

项目三:爬取视频磁力链接相关推荐

  1. Python简单爬取电影磁力链接

    Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...

  2. 【爬虫】从B站或央视网爬取视频下载链接

    import requests from bs4 import BeautifulSoup import re import senddetail import sys import pandas a ...

  3. Go语言爬取网站磁力链接

    package mainimport ("bufio""fmt""io""io/ioutil""net/htt ...

  4. python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...

    前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣<哪吒之魔童降世> 短评,然后下载在exce ...

  5. python画哪吒_Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评

    前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣<哪吒之魔童降世> 短评,然后下载在exce ...

  6. 爬虫概念与编程学习之如何爬取视频网站页面(三)

    先看,前一期博客,理清好思路. 爬虫概念与编程学习之如何爬取网页源代码(一) 爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二) 不多说,直接上代码. 编写代码 运行 <! ...

  7. 如何用 Python + Scrapy 爬取视频?

    今天将带大家简单了解Scrapy爬虫框架,并用一个真实案例来演示代码的编写和爬取过程. 一.scrapy简介 1. 什么是Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框 ...

  8. Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法

    俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...

  9. python实战-HTML形式爬虫-批量爬取电影下载链接

    文章目录 一.前言 二.思路 1.网站返回内容 2.url分页结构 3.子页面访问形式 4.多种下载链接判断 三.具体代码的实现 四.总结 一.前言   喜欢看片的小伙伴,肯定想打造属于自己的私人影院 ...

最新文章

  1. php 尾递归,关于尾递归的使用详解
  2. 069_html统一资源定位器
  3. 那一年,我考入了西北师范大学GIS专业,然而我很迷茫,GISer的职业规划到底是怎样的?
  4. 批处理ping指定ip列表
  5. html鼠标滚动图片折叠,鼠标滑过图片3D折叠效果
  6. Java容器-面试题
  7. 无法装载这个对象_面试官:别的我不管,这个JVM虚拟机内存模型你必须知道
  8. AAAI'22 | 基于情感分析的开放域对话系统
  9. SAP 系统License查看申请及导入
  10. 更新visual studio 报错The dependent package of ‘Microsoft.Net.PackageGroup.4.6.Redist‘
  11. Unity3D自动寻路之Nav Mesh Agent(导航网格代理)
  12. 面试分享:一年经验初探阿里巴巴前端社招
  13. dell G7 7588安装ubuntu双系统
  14. Excel 数据解析异常
  15. 外贸B2C独立站如何做?
  16. web项目的启动时文件加载顺序
  17. 中国修边压力机行业市场供需与战略研究报告
  18. Windows : bat脚本
  19. Java虚拟机这一块 —— JVM 调优和深入了解性能优化
  20. 数据库层次模型的优缺点

热门文章

  1. csdn博客名字修改
  2. HYSBZ - 1086:王室联邦(树上分块?)
  3. php链接mysql 老是die_php连接MySQL时, 为什么die(错误信息: . $conn-connect_error) 不返回错误信息?...
  4. Kafka3.x核心速查手册三、服务端原理篇-2、Broker选举机制
  5. FastDFS集群环境搭建(五)FastDFS监控器fdfs_monitor
  6. 软件工程经济学复习笔记
  7. 艾略特波段理论实战(1):8浪
  8. 有限体积法(12)——SIMPLE算法
  9. NLP - 微信好友个性签名情感分析( 基于Python开源库snownlp )
  10. 收敛速度:线性收敛,超线性收敛,r 阶收敛