搜索btsow上的磁力链,并复制到粘贴板
效果展示
下载地址:https://share.weiyun.com/uM8JYmBX
实现逻辑
btsow官网不提供api,所以只能通过获取页面信息自己解析。
workflow有4个步骤:
- 搜索
- 获取磁力链接
- 复制到粘贴板
- 消息提示
搜索
通过搜索页面/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()