本文环境是python3,采用的是urllib,BeautifulSoup搭建。

说下思路,这个项目分为管理器,url管理器,下载器,解析器,html文件生产器。各司其职,在管理器进行调度。最后将解析到的种子连接生产html文件显示。当然也可以保存在文件。最后效果如图。

首先在管理器SpiderMain()这个类的构造方法里初始化下载器,解析器,html生产器。代码如下。

def__init__(self):

self.urls = url_manager.UrlManager()

self.downloader = html_downloader.HtmlDownloader()

self.parser = html_parser.HtmlParser()

self.outputer = html_outputer.HtmlOutputer()

然后在主方法里写入主连接并开始下载解析和输出。

if __name__ == '__main__':

url = "http://www.btany.com/search/桃谷绘里香-first-asc-1"

# 解决中文搜索问题 对于:?=不进行转义

root_url = quote(url,safe='/:?=')

obj_spider = SpiderMain()

obj_spider.parser(root_url)

用下载器进行下载,解析器解析下载好的网页,最后输出。管理器的框架逻辑就搭建完毕

def parser(self, root_url):

html = self.downloader.download(root_url)

datas = self.parser.parserTwo(html)

self.outputer.output_html3(datas)

downloader下载器代码如下:

def download(self, chaper_url):

if chaper_url is None:

return None

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}

req = urllib.request.Request(url=chaper_url, headers=headers)

response = urllib.request.urlopen(req)

if response.getcode() != 200:

return None

return response.read()

headers是模仿浏览器的请求头。不然下载不到html文件。

解析器代码如下:

# 解析种子文件

def parserTwo(self,html):

if html is None:

return

soup = BeautifulSoup(html,'html.parser',from_encoding='utf-8')

res_datas = self._get_data(soup)

return res_datas

# 将种子文件的标题,磁力链接和迅雷链接进行封装

def _get_data(self,soup):

res_datas = []

all_data = soup.findAll('a',href=re.compile(r"/detail"))

all_data2 = soup.findAll('a', href=re.compile(r"magnet"))

all_data3 = soup.findAll('a',href=re.compile(r"thunder"))

for i in range(len(all_data)):

res_data = {}

res_data['title'] = all_data[i].get_text()

res_data['cl'] = all_data2[i].get('href')

res_data['xl'] = all_data3[i].get('href')

res_datas.append(res_data)

return res_datas

通过分析爬下来的html文件,种子链接在a标签下。然后提取magnet和thunder下的链接。

最后输出器输出html文件,代码如下:

def __init__(self):

self.datas = []

def collect_data(self, data):

if data is None:

return

self.datas.append(data)

#输出表单

def output_html3(self,datas):

fout = open('output.html', 'w', encoding="utf-8")

fout.write("")

fout.write("

")

fout.write("

")

fout.write("

for data in datas:

fout.write("

")

fout.write("

%s" % data['title'])

fout.write("

%s" % data['cl'])

fout.write("

%s" % data['xl'])

fout.write("

")

fout.write("

")

fout.write("")

fout.write("")

fout.close()

项目就结束了。源代码已上传,链接https://github.com/Ahuanghaifeng/python3-torrent,觉得有用请在github上给个star,您的鼓励将是作者创作的动力。

以上这篇python3爬取torrent种子链接实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

python爬虫可以找种子吗_python3爬取torrent种子链接实例相关推荐

  1. python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

    原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...

  2. 基于python爬虫————静态页面和动态页面爬取

    基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...

  3. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...

    Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...

  4. Python爬虫《自动化学报》数据爬取与数据分析

    Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...

  5. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  6. Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影

    文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...

  7. Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行

    Python爬虫学习基础--5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的.运用的知 ...

  8. Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价

    Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...

  9. Python爬虫-CSDN博客排行榜数据爬取

    文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 开始接触 CTF 网络安全比赛发现不会写 Python 脚本的话简直寸步难行--故丢弃 ...

  10. Python爬虫实现百度贴吧文本爬取【每天近千万级数据量】

    一.概述 我先澄清一下,我并不是单纯的为了爬数据而爬数据,这其实是为了之后的语音识别的语言模型训练积累数据的,所以我就实现了一个这样的爬虫,它可以不断的爬取各个指定贴吧的帖子文本内容,并把它存入Mon ...

最新文章

  1. Enterprise Library 2.0 技巧(3):记录ASP.NET站点中未处理的异常
  2. python旋转矩阵_python实现回旋矩阵方式(旋转矩阵)
  3. webservice linux 杀进程
  4. 几个OpenSource的源代码管理软件
  5. 徐磊(Devops):一名写了十几年代码但还没写够的程序员
  6. 世界上最奇特的国界线,万万没想到...
  7. cassandra 入门_Apache Cassandra和Java入门(第一部分)
  8. 曾有望成为第三大移动系统:如今正式告别,明日停止一切支持
  9. 流计算技术实战 - 超大维表问题
  10. building xxx gradle project info的解决办法
  11. [js]js设计模式-构造函数模式
  12. AST解析基础: 如何写一个简单的html语法分析库
  13. EXT2的文件系统装载之内核函数ext2_fill_super分析
  14. matlab gui stop,MATLAB GUI停止按钮问题
  15. Python+WebKit+HTML开发桌面应用程序
  16. 这几本豆瓣高分前端好书,值得一读!
  17. 拖拽插件jquery.dad.js
  18. VSCode下的51单片机开发环境搭建
  19. 大专计算机专业考英语师范研究生,我是计算机专业大专生,我想考人力资源管理研究生,现在已经工作一年多了,可以考吗,考的话难吗?...
  20. Java解析XML数据(三)——强大的XOM之simple-xml解析

热门文章

  1. 莫烦python博客_莫烦Python 4
  2. SwitchHost自动配置Github520
  3. 麒麟系统stty测试串口
  4. 阿里巴巴矢量图标 iconfont 下载图标分辨率小一点、并占得内存小一点呢
  5. 软件测试用例编写方法
  6. 行政区划编码转换区域名工具类
  7. 当当网Python图书数据分析
  8. 高等数学下——平面与直线
  9. kettle基础使用教程
  10. lammps后处理:Python调用Ovito模块配置方法