from urllib import request
import re
import time
class read_msg():
def __init__(self, url, regular, sign):
self.url = url
self.regular = regular
self.head = {}
self.head[
self.model = re.compile(self.regular, re.m)
self.sign = sign
def gethtml(self):
req = request.request(self.url, headers=self.head)
data = request.urlopen(req).read()
html = data.decode('utf-8')
msg = self.model.findall(html)
return msg
def printmsg(self):
print("\n%s\n" % self.sign.join(i for i in self.gethtml()))
def main():
print("歡迎使用網頁資訊提取器!本提取器可用於貼吧,論壇等資訊的快捷爬取及正則的測試\n")
url_end = input("輸入**頁碼的字尾(*只有當多頁提取,頁數在**的中間部分改變時才需輸入!)")
sign = input("輸入資訊分割(如;_./空格等符號):")
while true:
try:
times = input("輸入提取時間間隔/秒(反爬),不輸入直接回車")
if times == '':
times = 0
else:
times = int(times)
break
except:
print("時間間隔必須為數字")
while true:
regular = input("輸入正規表示式:常見正則如:\n"
"提取愛奇藝電影列表: title=\"(\w)\" rseat=\" 或 target=\"_blank\">(\w) \n"
"提取url: src=\"(https.*?\.[jp][pn][g])\"[\s|>][daswpctz]\n") # 正規表示式
page_start = int(input("輸入起始翻頁字尾:\n(如 作起始頁,則輸入5)\n"))
page_end = int(input("輸入結束翻頁字尾:\n如 作終止頁,則輸入120,單頁輸1\n"))
page = int(input("輸入每頁之間的間隔數(如每頁之間間隔20為新的一頁就輸20,單頁提取或每頁間隔1則輸入1:\n"))
page_endnum = int(page_start * page_end)
for num in range(page_start, page_endnum + 1, page): # num 從第1頁開始累加,依次每一頁
if page_endnum > 1:
url_num = url + str(num) + url_end # 改變頁面的只有字尾的數字
else:
url_num = url
try:
p = read_msg(url_num, regular, sign) # 傳遞引數
p.printmsg() # 呼叫方法並取得返回值累加
time.sleep(times)
except:
print("提取程序發生異常!")
print("\n已完成所有資訊提取!\n當前目標url: %s\n當前使用正則:%s" % (url, regular))
url_change = input("更換目標url請輸入new,按其他鍵使用當前url並繼續\n")
if url_change == 'new':
url = input("輸入新目標url:")
url_end = input("輸入新的**翻頁字尾(多頁提取時頁數在**的中間部分改變時才需輸入!)")
if __name__ == '__main__':
main()
Python 正規表示式 簡單示例
最近使用python正規表示式處理資料較多,先將python使用正規表示式匹配文字的示例程式整理一下。從檔案中讀取內容,使用正規表示式匹配import re import sys 主函式 重定向輸出位置 output sys.stdout outputfile open test.txt w sys...
python正規表示式簡單使用
python實用re模組來操作正規表示式,常用的方法如下 看下面一段 import re content abacadae matcher re.match ab content 字串開頭是ab,匹配成功 print matcher.span matcher re.match ac content ...
Python 正規表示式簡單了解
search 用字串裡的每乙個元素 去匹配找的元素 1 匹配單個字元 d 數字 d 非數字 匹配任意字元 除了 n 匹配裡的任意乙個字元 s 匹配空格 s 匹配非空格 w 匹配字母數字 下劃線 w 匹配特殊符號 2 匹配多個字元 匹配前乙個字元出現0次或著無限次 匹配前乙個字元出現1次或著無限次 至...