python正規表示式的簡單測試

2021-09-25 13:23:03 字數 2167 閱讀 9803

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次或著無限次 至...