搜索btsow上的磁力链,并复制到粘贴板

效果展示


WX20210810-171842@2x 下载地址:https://share.weiyun.com/uM8JYmBX


实现逻辑


btsow官网不提供api,所以只能通过获取页面信息自己解析。

WX20210811-170522@2x

workflow有4个步骤:

  1. 搜索
  2. 获取磁力链接
  3. 复制到粘贴板
  4. 消息提示

WX20210811-171111@2x

搜索

通过搜索页面/search,搜索关键词,获取结果列表信息。

get_search_list.py

# coding: utf-8
from workflow import Workflow3, web, ICON_WEB
import sys
import os, time

sys.path.append('libs')
from bs4 import BeautifulSoup as BS

reload(sys)  
sys.setdefaultencoding('utf8')

def search_links():
    url = os.environ['web_url'] + "/search/" + wf.args[0]

    result = web.get(url)
    result.raise_for_status()
    html = result.text
    soup = BS(html, 'html.parser')

    try:
        links = soup.find_all("div", class_="data-list")[0].find_all("a")
    except:
        links = []

    return links

def main(wf):
    links = search_links()

    if len(links) > 0:
        for link in links:
            wf.add_item(title=link.find_all("div")[0].get_text(),
                        subtitle=link.find_all("div")[1].get_text(),
                        arg=link.attrs["href"],
                        valid=True
                       )
    else:
        wf.add_item(title="No search result")

    wf.send_feedback()

if __name__ == '__main__':
    wf = Workflow3()
    sys.exit(wf.run(main))
    

获取磁力链接

点击选择选项,访问详情页获取磁力链的内容。

get_magnet_link.py

# coding: utf-8
from workflow import web
import sys
import os

sys.path.append('libs')
from bs4 import BeautifulSoup as BS

reload(sys)  
sys.setdefaultencoding('utf8')

def main():
    url = sys.argv[1]

    r = web.get(url)
    r.raise_for_status()
    result = r
    html = result.text

    soup = BS(html, 'html.parser')
    link = soup.find(id="magnetLink").get_text()
    sys.stdout.write(link) 

if __name__ == '__main__':
    main()