Python3 etree, requests库抓取bt

bt种子抓取

    • 1. 抓取你想要的数据
    • 2. 爬取bt种子
    • 3. 抓取磁力链

迷上了追番.. . bt种子+xunlei来解决。

推荐一个网站https://mikanani.me。可以搜索你想要的动漫… 以bt的形式下载,或者复制磁力链。

1. 抓取你想要的数据

  1. 需要了解requests, etree库,etree用来解析html页面的。
  2. 需要了解html页面结构。能够分析页面,获取数据存放在dom中的规则。etree是以页面标签为一个个的对象的。需要etree的规则来匹配html元素结点。
  3. 爬虫为了解放手工,自动化收集数据。

2. 爬取bt种子

爬取斗罗大陆。

https://mikanani.me/Home/Search?searchstr=%E6%96%97%E7%BD%97%E5%A4%A7%E9%99%86

它应该是个单体项目,没看到有xhr请求。无需转包,发送请求,就响应整个页面。

分析网页

不难发现,是个表格,每个tr下的第四个td,为什么不是第三个,etree就是第四个,td下的第一个a标签中的href属性就是想要的数据了。

https://mikanani.me/Download/20210529/e20a447ed38b85b0e2717336d8980240e600ff46.torrent

完整代码

设置请求头。

import requests as req
from lxml import etreeimport urllib
import osresp = req.get('https://mikanani.me/Home/Search?searchstr=%E6%96%97%E7%BD%97%E5%A4%A7%E9%99%86')## print(resp.text)html = etree.HTML(resp.text)print(type(html), html)# 获取a标签, 放下载链接。
res = html.xpath('//tr[@class="js-search-results-row"]//td[4]//a')main_url = 'https://mikanani.me'header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'}local_path = 'E:\python\crawler\mikanani\download'
def download_video(): i = 0;for a_tag in res:dict = eval(str(a_tag.attrib))download_url = main_url + dict.get('href')print(download_url + str(i) + '下载中..')# urllib.request.urlretrieve(download_url, os.path.join('', str(i) + '.torrent'))r = req.get(download_url, stream=True, headers = header)with open(os.path.join(local_path, str(i) + ".torrent"), "wb") as f:for chunk in r.iter_content(chunk_size=1024 * 1024):if chunk:f.write(chunk)i = i + 1print('下载完成.. 抓取个数..', len(res))if __name__ == "__main__":download_video()

3. 抓取磁力链

页面分析
数据绑定到data-clipboard-text这个属性。取到&前面就行了。

代码实现

# data-clipboard-textimport requests as req
from lxml import etreeimport osresp = req.get('https://mikanani.me/Home/Search?searchstr=%E6%96%97%E7%BD%97%E5%A4%A7%E9%99%86')## print(resp.text)html = etree.HTML(resp.text)print(type(html), html)res = html.xpath('//tr[@class="js-search-results-row"]//td[1]//a[2]')header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'}def download_video(): i = 0;for a_tag in res:dict = eval(str(a_tag.attrib))magent = dict.get('data-clipboard-text').split('&')[0]print(magent + '.. 写入文件...' + str(i))with open('斗罗大陆.txt', 'a+') as f:f.write(magent + '\n')i = i + 1print('下载完成.. 抓取个数..', len(res))if __name__ == "__main__":download_video()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ecshop各个文件夹作用

Images文件夹:这个文件夹下有子文件夹,在这些子文件夹下面存放着当前网站商品的原始图片和缩略图。这些子文件夹命名有规律的,它们的文件名是它们目录下商品加入 的年月份。也就是说在同一个月份加入的商品,它们的图片是在同一个文…

unity2018关联不到vs_现实VS真爱:远嫁的幸福和悲哀

陆拾一 LUSHIYI《现实VS真爱:远嫁的幸福和悲哀》Part.1你有过远嫁的犹豫或者经历吗?关于这个话题,我从未写过。今天借着一封读者的来信,与大家聊一聊。拾一,你好。我跟男朋友在一起两年了,现在到了谈婚论嫁…

dubbo使用nacos作为注册中心

spring-cloud nacos dubbodubbo接口服务提供者消费者,要订阅对应的服务,订阅提供者使用openFeign以http为协议进行rest调用。而dubbo是tcpport,使用tcp协议的。 版本说明 dubbo : 2.7.8 spring-cloud-alibaba: 2.1.4.RELEASE spring-cloud:…

vim下php文件中自动缩排html代码

问题&#xff1a;vim下怎样在php文件中通过 命令自动缩排html代码&#xff1f;解决&#xff1a;1、先说下html自动缩排 我的vim是7.4版本&#xff0c;已经包含了html.vim之类的缩排插件&#xff0c;但是缩排的时候<body> <head> 没有进行缩排 在.vimrc中加入如下代…

lgg8配置_LGG8XThinQ参数配置-LG G8X ThinQ详细性能评测

LG G8X ThinQ是一款全新发布的机型&#xff0c;这款手机和iPhone12一样不赠送充电器&#xff0c;那么这款手机的参数配置是什么&#xff1f;有哪些值得入手的地方&#xff1f;小编为大家带来最新的手机性能评测&#xff0c;快来看看吧。一、参数配置手机型号LG G8X ThinQ手机屏…

关于go指针在方法or函数中这件事

title1. go中的指针2. 函数中的指针3. 方法中的指针1. go中的指针 使用 *类型 声明指针… 使用*变量名获取指针的值… 使用 &p 获取指针的内存地址… fmt.Println(" 指针复习 ")// 声明指针avar a *intb : 1// 获取到b的内存地址.. 指向ba &bfmt.Println(a…

前端学习(1331):mongoose第三方模块

const mongoose require(mongoose); mongoose.connect(mongodb://localhost/playground, { useUnifiedTopology: true }).then(() > console.log(数据库连接成功)).catch(err > console.log(err, 数据库连接失败)) 运行结果

MySQL在大型网站的应用架构演变

http://www.csdn.net/article/2014-06-10/2820160 -- 原文地址 转载于:https://www.cnblogs.com/thrillerz/p/4215150.html

ikbc机械键盘打字出现重复_双十一机械键盘优惠清单,阿米洛/ikbc/吉利鸭/杜咖/美商海盗船/雷神/Filco机械键盘推荐...

这次为大家带来的是一篇双十一机械键盘的优惠汇总清单&#xff0c;其中杜咖的优惠力度较大&#xff0c;高斯的性价比很高&#xff0c;然后阿米洛则推出了好几款双十一限定款&#xff0c;我们一起来看看吧~TOP1、罗技&#xff08;Logitech&#xff09;K835原价&#xff1a;369元…

前端学习(1333):mongodb增

const mongoose require(mongoose); mongoose.connect(mongodb://localhost/playground, { useUnifiedTopology: true }).then(() > console.log(数据库连接成功)).catch(err > console.log(err, 数据库连接失败))//创建集合规则 const courseSchema new mongoose.Sche…

Exception in thread “main“ java.lang.IllegalStateException: Duplicate key xxx

debug..hah… 这个错误是使用stream流把list收集成map搞的&#xff0c;原因是map的key是唯一的&#xff0c;如果不唯一就抛出了这个异常。 下面是异常代码 import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors;/*…

Http方法:Get请求与Post请求的区别

Get是向服务器发索取数据的一种请求&#xff0c;而Post是向服务器提交数据的一种请求Get是获取信息&#xff0c;而不是修改信息&#xff0c;类似数据库查询功能一样&#xff0c;数据不会被修改Get请求的参数会跟在url后进行传递&#xff0c;请求的数据会附在URL之后&#xff0c…

前端学习(1332):mongodb安装

一、安装 双击安装文件&#xff0c;然后安装指引点击下一步 ​​ 选择【Custom】安装类型 ​​ 将程序安装到D盘MongoDB目录下&#xff08;如果切换了目录&#xff0c;记得对应调整monggo.bat下面的路径&#xff09; ​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​…

华为手机什么时候更新鸿蒙系统_华为鸿蒙系统什么时候能超过iOS、安卓?任正非表态了...

众所周知&#xff0c;自从去年8月份华为高调发布了鸿蒙系统之后&#xff0c;网友们每时每刻都在盼望着鸿蒙系统能够取代安卓&#xff0c;成为华为手机使用的操作系统。甚至还有人觉得以华为的能力&#xff0c;鸿蒙一出&#xff0c;能够迅速超过苹果的iOS和安卓系统。可惜原来余…

分布式下的session问题

分布式下的session在分布式项目下项目中使用在分布式项目下 session是一种会话状态&#xff0c;是储存在服务器上的&#xff0c;可以区分每个用户。浏览器会保存着对应的信息。浏览器保存的叫cookie。用户访问&#xff0c;浏览器会带上cookie让服务器识别。 如果是单体项目&a…

c++ primer 笔记 (三)

标准库类型string 和 vector &#xff0c;分别定义了大小可变的字符串和集合。 bitset&#xff0c;提供了一个抽象方法来操作位的集合。提供更方便的处理位的方式&#xff08;相对于整型值上的位操作符&#xff09;vector用于保存一组指定类型的对象。&#xff1a;&#xff1a;…

前端学习(1334):mongodb增2

const mongoose require(mongoose); mongoose.connect(mongodb://localhost/playground, { useUnifiedTopology: true }).then(() > console.log(数据库连接成功)).catch(err > console.log(err, 数据库连接失败))//创建集合规则 const courseSchema new mongoose.Sche…

vue登录如何存储cookie_vue保持用户登录状态(各种token存储方式)

而作为前端,存储这些值同样有多种方式,你可以存在Cookie、LocalStorage、SessionStorage或者Vuex状态管理器中,当然他们的作用也不同 怎么设置Cookie HttpResponse来响应对象的cookie,设置好对应的视图和路由,只要通过浏览器访问该路由,浏览器就会自动获取到cookie值并存…