Python3.3提取網頁并通過正則表達式來分析
用Python3.3來訪問頁面。并解析出內容是爬蟲程序設計的基礎,下面就是個例子,函數GetURL用于取得一個頁面的源數據。在函數中,python模擬一個瀏覽器的訪問。取得結果可能會包括非unicode的編碼。下面方面教大家怎么查編碼
在IE瀏覽器中打開要訪問的頁面,在頁中按鼠標右鍵。選擇編碼。可以查看當前的編碼是什么。

通過request.open打開的是一個bytes數組,直接通過調用decode來完成轉換。轉換后,就成了unicode字符串。
ParseURL則是采用正則表達式來提取有用的信息。本例子中是用來提取“東方財富網”中某股票的資金流動情況。
#URL
import sys
import re
import urllib.request as request
#codec can be 'gb2312','utf8' etc
def getCode(strText,codec):
b = bytes((ord(i) for i in strText))
return b.decode(codec)
def GetURL(strURL):
headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')
opener = request.build_opener()
opener.addheaders = [headers]
response = opener.open(strURL).read()
#print(type(response))
return response.decode("gb2312")
def ParseURL(strResp):
pattern = re.compile(r"
\s*\s*\s*\s*\s*\s*\s*\s*\s*\s*\s*\s*")
match = pattern.findall(strResp)
if match:
for result in match:
for item in result:
print(item,end=" ")
print()
xxx = GetURL(r"http://data.eastmoney.com/zjlx/600030.html")
ParseURL(xxx)
#print(xxx)
\s*(\d*-\d*-\d*)\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s* \s*([+.\-0-9]+).*\s*
本文由用戶 p34f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!