批量获取 Btsow 网站搜索到的磁力链接

2023-12-06 02:12

本文主要是介绍批量获取 Btsow 网站搜索到的磁力链接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BTSOW 是个不错的种子或磁力链接搜索网站,本脚本可以按需要批量抓取 磁力链接(老司机必备)
功能:
1.获取最新地址(网站经常失联)
2.最多50页内容(网站限制)
3.结果生成CSV文件(可用excel打开后进一步筛选文件尺寸,剔除小文件) 

 

代码:

from bs4 import BeautifulSoup
import requests
import re
import datetime
import pyperclip
import time
import subprocess
from time import sleep
import random
import csv
from urllib.parse import quotex = datetime.datetime.now()
print('任务开始于:'+str(x)+'\n')
today=x.strftime("%Y")+'-'+x.strftime("%m")+'-'+x.strftime("%d")
#print(today)s = requests.Session()Headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50'}tellme_url='https://tellme.pw/bts'reponse = s.get(url=tellme_url,headers=Headers)
# print(reponse.text)
soup= BeautifulSoup(reponse.text,'lxml')
# print(soup.prettify())
h2_tag = soup.find('h2')
new_url=h2_tag.a['href']
print('最新网址:\t'+new_url)gjc=input("关 键 词:\t")seach_url = new_url+'/search/'+quote(gjc)
# print(seach_url)
reponse=s.get(url=seach_url,headers=Headers)
# print(reponse.text)mag=[]
title=[]
sizenum=[]
date=[]# pagination pagination-lg
# /html/body/div[2]/div[7]/ul/li[1]
# body > div.container > div:nth-child(9) > ul > li.hidden-xs.active
maxpage=0# maxpage<=50
for p in range(1,52):html=s.get(seach_url+'/page/'+str(p),headers=Headers)allhtml=html.textif p==1:print('正在尝试:\t'+seach_url+'/page/'+str(p))soup= BeautifulSoup(allhtml,'lxml')data_list=soup.find_all("a",{"href":re.compile("\/\/btsow\.*?"),"title":re.compile('.*?')})for i in data_list:mag.append('magnet:?xt=urn:btih:'+i.get('href')[-40:])title.append(i.get('title'))soup=BeautifulSoup(str(i),"lxml")size=soup.find("div",{"class":re.compile('.*?size')})info=size.get_text().split(" / ")sizen=info[0][5:-2]sizedw=info[0][-2:]if sizedw=="TB":sizenum.append(float(sizen)*1024**2)elif sizedw=="GB":sizenum.append(float(sizen)*1024)elif sizedw=="MB":sizenum.append(float(sizen))elif sizedw=="KB":sizenum.append(float(sizen)/1024)else:sizenum.append(0)date.append(info[1][13:])if p > 1:soup=BeautifulSoup(allhtml,'lxml')page=soup.find("ul",{"class":'pagination pagination-lg'})# if page.txt.find("Next")if page == None:maxpage=p-1breakelse:print('正在尝试:\t'+seach_url+'/page/'+str(p))soup= BeautifulSoup(allhtml,'lxml')data_list=soup.find_all("a",{"href":re.compile("\/\/btsow\.*?"),"title":re.compile('.*?')})for i in data_list:mag.append('magnet:?xt=urn:btih:'+i.get('href')[-40:])title.append(i.get('title'))soup=BeautifulSoup(str(i),"lxml")size=soup.find("div",{"class":re.compile('.*?size')})info=size.get_text().split(" / ")sizen=info[0][5:-2]sizedw=info[0][-2:]if sizedw=="TB":sizenum.append(float(sizen)*1024**2)elif sizedw=="GB":sizenum.append(float(sizen)*1024)elif sizedw=="MB":sizenum.append(float(sizen))elif sizedw=="KB":sizenum.append(float(sizen)/1024)else:sizenum.append(0)date.append(info[1][13:])sleep(random.randint(1,10))# soup= BeautifulSoup(allhtml,'lxml')
# # print(soup.text)
# # print(soup.get_text)
# # data_list=soup.find("div",{'class':"data-list"})
# # print(data_list)
# # print(type(data_list))
# # soup= BeautifulSoup(data_list.text,"lxml")
# data_list=soup.find_all("a",{"href":re.compile("\/\/btsow\.*?"),"title":re.compile('.*?')})# for i in data_list:
#     mag.append('magnet:?xt=urn:btih:'+i.get('href')[-40:])
#     title.append(i.get('title'))
#     soup=BeautifulSoup(str(i),"lxml")
#     size=soup.find("div",{"class":re.compile('.*?size')})
#     info=size.get_text().split(" / ")
#     sizen=info[0][5:-2]
#     sizedw=info[0][-2:]
#     if sizedw=="TB":
#         sizenum.append(float(sizen)*1024**2)
#     elif sizedw=="GB":
#         sizenum.append(float(sizen)*1024)
#     elif sizedw=="MB":
#         sizenum.append(float(sizen))
#     elif sizedw=="KB":
#         sizenum.append(float(sizen)/1024)
#     else:
#         sizenum.append(0)#     date.append(info[1][13:])
# sleep(random.randint(1,10))# print("%s\n%s\n%s\nMB\n%s\n" %(mag,title,sizenum,date))
# maxindex=sizenum.index(max(sizenum))
# print('magnet:?xt=urn:btih:'+mag[maxindex] +'  '+title[maxindex])# print(len(mag))
# print(len(title))
# print(len(sizenum))if len(mag)==0:print('未找到任何资源')if len(mag)>0:print('最大页数:\t',maxpage)print('链接数量:\t',len(mag))print('详细内容:')for i in range(len(mag)):print(mag[i]+'\t'+str(sizenum[i])+'\t\t'+title[i])
if maxpage>1:rows = zip(title, mag, sizenum ,date)# print(len(rows))with open(gjc+'.csv', mode='w', newline='',encoding='utf-8-sig') as file:writer = csv.writer(file)writer.writerow(['种子名','磁力链接', '文件大小(单位:MB)', '日期'])for row in rows:writer.writerow(row)print('写入文件:\t'+gjc+'.csv')

这篇关于批量获取 Btsow 网站搜索到的磁力链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460007

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密