在寫爬蟲的過程中,最麻煩的就是寫正規表示式,還要乙個乙個的嘗試,一次次的除錯,很是費時間。於是我就寫了乙個網頁版的,只需要輸入要爬的**,和正則式,網頁上就可以顯示爬到的資料。
思路:其實很簡單,將**和正則式傳到伺服器,伺服器解析之後,將結果返回到前端。我用的是bootcss(前端)+bottle(後台用python處理),**很簡單,就是過程有些複雜。由於傳遞的引數是乙個**,而後台判斷引數結束的標誌是/......./,所以每次都是傳值失敗,後來想到用先用base64加密再傳遞
webregx.py
import urllib2
import re
import json
def gethtml(url):
html = urllib2.urlopen(url).read()
return html
def getresult(url,reg):
html = urllib2.urlopen(url).read()
reg = re.compile(reg)
results = reg.findall(html)
if len(results)>0:
for result in results:
print result
else:
print "not result"
return json.dumps(results)
注意:最後要返回乙個json結構的資料
main.py
from bottle import route,request,template,run,bottle,static_file
from webregx import getresult
import base64
def show():
return template('templates/index')
def test(webstr):
#return "hello{}!".format(name)
#webstr = webstr.replace(',','?')
base64_url,base64_reg =webstr.split(",")
url=base64.decodestring(base64_url)#解密
reg=base64.decodestring(base64_reg)
return getresult(url,reg)
def send_static(filename):
return static_file(filename, root='./templates')
index.html
url
reg搜尋
place sticky footer content here.
查詢用的是ajax方式。
最後效果:
正規表示式解析
正規表示式,又稱正規表示式,常規表示式,是使用單個字串來描述.匹配一系列符合某個句法規則的字串,在很多文字編輯器中,正規表示式通常被用來檢索.替換那些符合某個模式的文字.正規表示式的語法可以自行搜尋,通常分為一下幾個方面 1 字元 可以使用普通字元匹配,例 a 使用預定義字元表示給定範圍中的某個字元...
正規表示式解析
string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...
正規表示式解析
string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...