-————————————————2016年3月1日更新————————————————
现在btspread已经不能用了,哥准备换掉神器里面的btspread搜索方法,换上btdigg和torrentkitty的搜索函数,大家敬请期待.
————————————————2016年1月30日更新————————————————
其实这货有个bug.
文件名File Name没办法显示中文字符,有时候还提取不到.真是日了狗了.
大家有空的话可以到github上面follow一下不,帮我解决掉这个bug.
————————————————2016年1月30日更新————————————————
上次我不是在我的博客里面弄了发布了一个用C#写的搜片神器么,说起这货的诞生,我还得感谢我那巨懒得老爸。
皇上曰:我要看片!
于是有了片。(略过途中各种艰难的手动搜片过程)
怎么可以这么麻烦啊,于是我就写了个软件,专门为搜片而生。
————————————————我是萌萌哒的分割线————————————————
其实上面只是一个开头,大家不要认为我写个文章就是专门来吐槽父皇大人的。
放代码才是最关键的事情好不。
————————————————我是萌萌哒的分割线————————————————
先上设计流程:
1.从搜索框得到搜索关键字
|
2.得到btspread的链接数组
|
3.分析此数组所指向的各个网页的源代码,得到包含磁链链接的那个网页
|
4.分析这些网页,得到磁力链啊接
|
5.么么哒
————————————————我是萌萌哒的分割线————————————————
这个案例的核心就在于获取网页源代码,以及获取网页源代码之后用正则表达式匹配得到所需的磁力链接.
我们先看看怎么获取上图步骤二的链接:
我们在这个网站下面就可以搜索片源:
http://www.bt2mag.com/search/
(不要告诉我你这个都不知道怎么找到的)
我以搜007幽灵党为例,我们能在网页源代码里面找到以下语句:
<a href="http://www.bt2mag.com/magnet/detail/hash/568901DB746FA104341C76908DBD5A733C8732A2" title="[www.hdmayi.com][007:幽灵党][1080P.BD-RMVB][中英文字幕]">
这里
<a href="到"之间的内容就是我们要提取的第一个网址
那我们可以用正则表达式:
@"(?<=hash/).*?(?="")"
来得到hash嘛,之后就把:
http://www.bt2mag.com/magnet/detail/hash/
加在前面就可以了.所有的搜索链接都提取到一个字符数组里面,方便提取下一步的网页源代码
我们分析一下所有的网页源代码,都可以发现一段类似于:
<a id="magnetDownload" href="magnet:?xt=urn:btih:568901DB746FA104341C76908DBD5A733C8732A2&dn=%5Bwww.hdmayi.com%5D%5B007%EF%BC%9A%E5%B9%BD%E7%81%B5%E5%85%9A%5D%5B1080P.BD-RMVB%5D%5B%E4%B8%AD%E8%8B%B1%E6%96%87%E5%AD%97%E5%B9%95%5D"
的语句.这就是我们所要提取的磁力链接.
那么,我们就可以用正则表达式匹配
<a id="magnetDownload" href="magnet:?xt=urn:btih:到"之间的内容
正则表达式:
@"(?<=readonly>).*?(?=)"
把提取到某一个字符数组里面放好.
同理:
用@"(?<=Content Size:
用@"(?<=
之后就是显示了,这就不在赘述.
————————————————我是萌萌哒的分割线————————————————
参考资料,感谢以下资料的原作者
正则表达式学习网址:
http://www.cnblogs.com/youring2/archive/2009/11/07/1597786.html
获取源代码的三种方法:
http://www.cnblogs.com/zjfree/archive/2011/03/10/1980325.html
————————————————我是萌萌哒的分割线————————————————
面的大家又要上Github,又要开VS,我就在这里上代码了:
Github地址:https://github.com/K9A2/BtSpread_Assistant
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace 疯狗的神器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static string BTS_Link = "http://www.bt2mag.com/search/"; //btspread的搜索地址
public static string BTS_Hash_Reg = @"(?<=hash/).*?(?="")"; //求hash的正则表达式
public static string BTS_Hash_Link = "http://www.bt2mag.com/magnet/detail/hash/"; //包含磁力链接的网页的开头
public static string BTS_Mag_Reg = @"(?<=readonly>).*?(?=)"; //求mag的正则表达式
public static string BTS_Get_File_Size = @"(?<=Content Size: