Skip to main content

利用Anaconda平台、使用python实现六维资源更新提醒

Anaconda是Python的一个免费增值(freemium)发布,用于处理大规模数据处理、预测式分析和科学计算,目标是简化包的管理和部署。它的包管理系统是conda。Anaconda包含了超过330个Python开源包。所以使用Anaconda平台进行python编程只需专注于内容而不用担心python支持包的问题。

前几天六维开放注册,就有新人问怎样才能快速涨分,我的经验是:在热门资源的早期就开始做种。按照这个思路就有两个问题出现:
1、怎么识别热门资源
2、如何在其早期就开始做种

怎么识别热门资源呢?我对电影区比较熟悉,就拿电影区举例。电影区的热门资源有两条规律:
(1)院线上映大片的前几部或者导演演员的前续作品都很有可能是热门资源。比如王牌特工2上映前,王牌特工1肯定是热门资源。
(2)院线大片有资源后只要在电影区出现肯定是热门资源。
当然电视剧集区里,微博微信的热门话题剧集就是热门资源了。

如何在热门资源早期就开始做种?由于六维下线了RSS功能,所以如果没有其他提醒方式帮助,只能频繁的手动查看资源区,这样很浪费时间的。
这种重复性的工作就交给脚本吧!

思路:六维新发布的资源都会显示在相应资源区的第一页,并且这一页的网址不会变。因此用脚本监测这一页的内容,如果出现想要的资源马上提醒。
方案:使用python制作脚本,使用urllib包登录六维并抓取监测页面内容,使用BeautifulSoup包解析抓取的内容、查找想要的资源是否出现,使用email、smtplib包发邮件提醒新资源出现了(如果手机有邮箱客户端就可以很快收到提醒了)。
以下贴上脚本源码,在红色位置填上自己的信息即可。

# 登录neu6抓取内容
import urllib.request 
import urllib.parse 
import http.cookiejar

#设置时钟
import time

# 解析抓取内容
from bs4 import BeautifulSoup
import io 
import sys

# 发送邮件提醒
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib

# 登录六维,两个参数:用户名un和密码pw
def login_neu6(un,pw):
    #post的内容 
    values={ 
    'password':pw, 
    'username':un, 
    'quickforward':'yes',
    'handlekey':'ls' 
    } 

    #登陆的地址 
    logUrl="http://bt.neu6.edu.cn/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1"

    #构建cook 
    cook=http.cookiejar.CookieJar() 

    #构建openner 
    openner=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cook)) 

    #添加headers 
    openner.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')] 

    r=openner.open(logUrl,urllib.parse.urlencode(values).encode()) 

    #print(r.read().decode('gbk')) 

    r=openner.open("http://bt.neu6.edu.cn/forum-13-1.html") # 要监控的页面的网址
    all_html = r.read().decode('gbk')
    return all_html

# 解析抓取到的内容,查找资源是否存在。两个参数:登录后打开的页面html_content、查找的电影资源名称film
def check_neu6(html_content,film):
    #sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码 
    soup = BeautifulSoup(html_content,"lxml")
    result = soup.find_all("a",class_="s xst")
    exist = False
    for re in result:
        find_index = re.get_text().find(film)
        if find_index >= 0: 
            exist = True
            break

    return exist

# 发送邮件提醒,一个参数:查找的电影资源名称film
# 方法来自廖雪峰官网python教程
# 注意:可能会被某些邮箱识别为垃圾邮件
def email_alert(film):
    def _format_addr(s):
        name, addr = parseaddr(s)
        return formataddr((Header(name, 'utf-8').encode(), addr))
    
    # 确保你的邮箱开启了SMTP功能
    from_addr = "XXXXXXXXX@126.com"     #### 在这填入登录邮箱
    password = "XXXXXXXXX"     #### 在这填入邮箱登陆密码
    to_addr = "XXXXXXX@QQ.com"     #### 在这填入要接受提醒的邮箱
    smtp_server = "smtp.126.com"     #### SMTP服务器地址

    msg = MIMEText('<%s>有资源了' % film, 'plain', 'utf-8')
    msg['From'] = _format_addr('FROM <%s>' % from_addr)
    msg['To'] = _format_addr('TO <%s>' % to_addr)
    msg['Subject'] = Header('有资源了', 'utf-8').encode()

    server = smtplib.SMTP(smtp_server, 25)
    server.set_debuglevel(1)
    server.login(from_addr, password)
    server.sendmail(from_addr, [to_addr], msg.as_string())
    server.quit()

# 每n分钟执行一次
def timer(n,film):
    while True:
        content = login_neu6("username","password") #### 在这填入六维用户名和密码
        is_exist = check_neu6(content,film)
        if is_exist:
            email_alert(film)
            print("邮件已发送,请设置参数后重新开启程序")
        break
        time.sleep(n*60)

# 每15分钟检查一下页面是否有“雷神”的资源 
timer(15,"雷神")      #### 在这设置查找的时间间隔和电影名称(由于资源区更新较慢,建议不要设置太短的时间,那样既浪费计算资源又有可能被识别为账号异常)

注意:监测页面的时间间隔不要太短,不要给六维服务器带来很大压力。
本篇内容请随意转载,转载注明出处。

Comments

Popular posts from this blog

使用PHP Webhook方式打造Telegram Bot

一、找BotFather拿到bot token     在telegram中私聊BotFather建立自己的bot,给bot取名,名字必须要以bot结尾。建好后自己的bot就有一个唯一的token,类似下面的一串字符 164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8 二、确认bot响应文件的位置     在写好bot响应文件后,要把bot放在网络上的一个位置,并且这个位置必须要加密的,即以https开头的一串网址。比如响应文件的名称为telbot.php,把它放在下面这个网址的位置: https://my.webhost.com/ 164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8 /telbot.php 上面网址中的红色设置和bot的token一样是为了确定这个唯一的位置,当然也可以任意设置。 三、告诉Telegram响应文件的位置 Telegram用下面网址的形式来设定webhook响应方式 https://api.telegram.org/bot [myauthorization-token] /setwebhook?url= [myboturl] 按照上面的网址形式,把自己创建的bot的token以及响应文件的位置填入,然后在浏览器中运行一下即可设置成功。比如: https://api.telegram.org/bot164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8/setwebhook?url=https://my.webhost.com/164354723:AAEjT6-IyNoXjt7miD0dwa-P5VmDTtHQC8/telbot.php 设置成功后,页面会显示下面的内容: {"ok":true,"result":true,"description":"Webhook is already set"} 四、在Telegram中给自己的bot发消息进行验证 php响应文件例子 <?php  define('BOT_TOKEN', 'YOURBOT:TOK

MatLab中patch函数的基本用法

patch是用来构建多边形的一个基本函数。 用法一 patch(X,Y,C) patch(X,Y,Z,C) patch( 'XData' ,X, 'YData' ,Y) patch( 'XData' ,X, 'YData' ,Y, 'ZData' ,Z) 1.1 说明 patch(X,Y,C)用来构建一个或者多个可填充的多边形,其使用X和Y作为每个点的坐标值,patch将会按顺序连接每个点。如果要得到一个多边形,将X和Y设置为向量;如果要得到多个多边形,将X和Y设置为矩阵,没一列对应一个多边形。C决定多边形的颜色,可以是系统认定的字符,也可以是一个数值,也可以是RGB向量。 patch(X,Y,Z,C)用来构建三维坐标下的多边形。 patch(‘XData’,X,’YData’,Y)和patch(‘XData’,X,’YData’,Y,’ZData’,Z)的用法与patch(X,Y,C)和patch(X,Y,Z,C)的用法类似,只是不设定颜色。 1.2 例子 1.2.1 x = [ 0 1 1 0 ] ; y = [ 0 0 1 1 ] ; patch(x,y, 'red' ) x和y都是1*4的向量,表示将四个点(0,0)、(1,0)、(1,1)和(0,1)依次连接,最后闭合形成一个四边形,设定颜色为红色。 1.2.2 x2 = [ 2 5 ; 2 5 ; 8 8 ] ; y2 = [ 4 0 ; 8 2 ; 4 0 ] ; patch(x2,y2, 'green' ) x2和y2都是3*2的向量,两列表示画两个多边形。第一个多边形连接的点依次是(2,4)、(2,8)和(8,4),第二个多边形连接的点依次是(5,0)、(5,2)和(8,0),颜色设定为绿色。 1.2.3 如果上例的三角形第一个是红色,第二个是绿色,那么patch代码修改为 x2 = [ 2 5 ; 2 5 ; 8 8 ] ; y2 = [ 4 0 ; 8 2 ; 4 0 ] ; patch(x2(:, 1 ),y2(:, 1 ), 'red' ) pat

telegram中的Sci-Hub机器人,又一文献下载利器

或许你看到标题会问什么是telegram,什么是Sci-Hub?请听我一一道来。 什么是Sci-Hub Sci-Hub是一个线上 数据库 ,其上提供48,000,000篇科学学术论文和文章。网站透过“.edu”代理服务器访问相关页面,每天会上传新的论文文章。2011年,哈萨克研究生亚历珊卓·艾尔巴金(Alexandra  Elbakyan)因为研究论文成本过高,每篇论文在付费墙机制下通常需要花费30美元,而决定成立Sci-Hub。2014年,学术界开始预测网站将会发展为类似Napster的服务。不过到了2015年,学术出版社爱思唯尔向纽约地方法院提交诉讼,指控Sci-Hub已经侵犯版权。纽约地方法院在2015年10月28日仍下令Sci-Hub原本使用的网域名称“Sci-Hub.org”必须终止。爱思唯尔在法院上获得胜诉后,一群研究人员、作家和艺术家则连署一封表态支持Sci-Hub和创世纪图书馆的公开信,声称这次诉讼对于世界各地的研究人员是“重大打击”,并指出:“它同样贬低我们、作者、编辑和读者。它寄生于我们的劳动,它阻挠我们为大众服务,它阻拦我们进入。”而该计划于11月因法院命令中止后,在同一个月内便改用网域名称“.io”重新上线,并开放使用Tor浏览。2016年1月时,Sci-Hub平均每天约有200,000人访问,Sci-Hub则声称网站服务每天平均有数十万次档案请求。  Sci-Hub是目前已知第一个提供大量自动且免费的付费学术论文的网站,使用者不需要事前订阅或付款,就能够使用原本存放在付费数据库的论文文章,并提供搜寻原先出版社网站内的文件档案服务。 以上介绍来源于维基百科词条 Sci-Hub Sci-Hub网站被屡次下线,但是又通过更换域名重新上线。以下三个网址经测试可以使用:  http://www.sci-hub.bz/   http://www.sci-hub.ac/   http://www.sci-hub.cc/   广大学者将自己的文章发表至学术期刊(免费或者支付版面费),然而当需要查看其他学者的文章时还需要向出版商付费,你是不是也觉得这完全阻碍了科学文化的传播。艾尔巴金在为自己辩护时援引联合国《世界人权宣言》第二十七条所提的:“人人有权自由参加社会之文化生活,欣赏艺术,并共同襄享科学进步及其利益。”关于这个问题,另一位被称