python公众号开车功能

原创
2016/11/04 10:13
阅读数 134

 

昨天在微信公众号后台搞了个开车的功能,大概是根据回复的关键字去bt搜索站搜索种子地址然后回复。用了xpath做数据获取,但感觉效率不够,容易超时出现“公众号暂时无法服务”的情况,考虑两种解决方案:

1.优化爬虫效率,提升获取结果的时效;

2.优化微信回复逻辑;(微信api文档给出的解决方案是默认回复空或success,然后调用客服消息接口回复内容,但个人公众号无法开通客服消息接口,故无法按此方案解决)

目前只能保持现状,贴上代码:

ps:通过用户输入的关键词获取搜索结果里的磁力链接,i表示获取前多少条记录。由于搜索结果默认是以热度排序,所以靠前的磁力链接可用度比较高

#-*- coding:utf-8 -*-
import xml.etree.ElementTree as ET
import requests
import json
import urllib2
from lxml import etree
#获取搜索结果的方法
def getUrl(key):
     url='https://www.torrentso.com/s/'+key+'/'
     html_content = requests.get(url).content
     html = etree.HTML(html_content)
     titles = html.xpath('//div[@class="bt_list"]/a/@title')
     urls = html.xpath('//div[@class="bt_list"]/a/@href')
     #初始化变量值
     i = 0
     replytext =''
     result=[]
     for i in range(0,6):

          downurl = getDown(urls[i])
          result.append(titles[i])
          result.append(downurl)

          replytext = replytext + '\n'+ titles[i]+'\n'+urls[i]+'\n'
          #print downurl
          i+=1

     return replytext
#获取磁力链接的方法
def getDown(url):
     html_content = requests.get(url).content
     html = etree.HTML(html_content)
     downurl = html.xpath('//div[@id="hash_newdown"]/textarea')

     return downurl[0].text

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部