零.前言:
下午在先知论坛看文章,突然想写一个搜索先知文章的轮子,练练手.
于是有了下文!
一.编写思路:
第一步:
是要获取到先知社区的所有文章,但先知论坛的所有文章并不能一起显示出来,
我便上谷歌找到了这玩意:
search_url="https://job.lonelysec.com/xz.aliyun.com"
search=requests.get(url=search_url)
第二步:
要进行正则匹配,匹配出所有文章的url和标题!
def mstir_list(a,b,string):
result = re.findall('.*%s(.*)%s.*'%(a,b),string)
for x in result:
print('Url:http://',cx)
第三步:
判断正则匹配匹配到的内容是否含有要搜索的内容!
def mstir_search(a,b,string):
global id
result = re.findall('.*%s(.*)%s.*'%(a,b),string)
for x in result:
if content in x:
cx=x.replace(th, ' Title:');
cx=cx.replace('m/', 'm/t/');
print("===========================================================================")
print("搜索结果" + str(id) + ":")
print('Url:http://',cx)
id = id + 1
思路咱们明确了,就开始写代码吧!
二.Python实现:
使用方法:
Prophet-Article-Query.py list whole #列出所有文章
Prophet-Article-Query.py search phpcms(你要搜索的) #搜索内容
# -*- coding: UTF-8 -*- #
import requests
import re
import sys
id = 1
method = sys.argv[1]
content = sys.argv[2]
th='" class="pure-menu-link">'
search_url="https://job.lonelysec.com/xz.aliyun.com"
search=requests.get(url=search_url)
def mstir_search(a,b,string):
global id
result = re.findall('.*%s(.*)%s.*'%(a,b),string)
for x in result:
if content in x:
cx=x.replace(th, ' Title:');
cx=cx.replace('m/', 'm/t/');
print("===========================================================================")
print("搜索结果" + str(id) + ":")
print('Url:http://',cx)
id = id + 1
def mstir_list(a,b,string):
result = re.findall('.*%s(.*)%s.*'%(a,b),string)
for x in result:
cx=x.replace(th, ' Title:');
cx=cx.replace('m/', 'm/t/');
print('Url:http://',cx)
if {method == "list"}:
print (' ____ __ __ _ _')
print ('| __ ) _ _ | \/ |___| |_(_)_ __')
print ("| _ \| | | | | |\/| / __| __| | '__|")
print ("| |_) | |_| | | | | \__ \ |_| | |")
print ("|____/ \__, | |_| |_|___/\__|_|_|")
print (" |___/ 90sec.com")
mstir_list('href="/','<',search.text)
if {method == "search"}:
print (' ____ __ __ _ _')
print ('| __ ) _ _ | \/ |___| |_(_)_ __')
print ("| _ \| | | | | |\/| / __| __| | '__|")
print ("| |_) | |_| | | | | \__ \ |_| | |")
print ("|____/ \__, | |_| |_|___/\__|_|_|")
print (" |___/ 90sec.com")
mstir_search('href="/','<',search.text)
print("===========================================================================")
项目的Github地址:https://github.com/M4tir/MyTools
三.易语言实现:
其实易语言的实现和python差不了多少,语言是相通的(尽管一个是中文代码,一个是英文的代码)
只要你懂得了其原理,便不难编写工具!
核心代码:
程序演示:
附上程序源码:先知文章查询工具源码.rar (889.6 KB)
END!