也許這裡會顯得多此一舉,但是基於我對解耦的強烈願望,我還是果斷地寫到檔案裡了。後面如果採用物件導向程式設計,重構起來是十分方便的。
獲取網頁內容部分也是相對簡單的,但是需要把網頁的內容都儲存到乙個資料夾裡。
這裡有幾個新的用法:
複製** **如下:
os.getcwd()#獲得當前資料夾路徑
os.path.sep#當前系統路徑分隔符(是這個叫法嗎?)windows下是「\」,linux下是「/」
#判斷資料夾是否存在,如果不存在則新建乙個資料夾
if os.path.exists('newsdir') == false:
os.makedirs('newsdir')
#str()用來將某個數字轉為字串
i = 5
str(i)
有了這些方法,將字串儲存到某個資料夾下不同的檔案就不再是一件困難的事了。
步驟3:列舉每乙個網頁,根據正則匹配獲得目標資料。
下面的方法是用來遍歷資料夾的。
複製** **如下:
#這個是用來遍歷某個資料夾的
for parent, dirnames, filenames in os.walk(dir):
for dirname in dirnames
print parent, dirname
for filename in filenames:
print parent, filename
遍歷,讀取,匹配,結果就出來了。
我使用的資料提取的正規表示式是這樣的:
複製** **如下:
reg = '.*?.*?(.*?).*?(.*?).*?(.*?)
'其實這個並不能匹配到所有內容,因為上面的新聞有兩種格式,標籤有一點差別,所以只能提取出一種。
另外一點就是通過正規表示式的提取肯定不是主流的提取方法,如果需要採集其他**,就需要變更正規表示式,這可是一件比較麻煩的事情。
提取之後觀察可知,正文部分總是會參雜一些無關資訊,比如「」「
」等等。所以我再通過正規表示式將正文切片。
複製** **如下:
def func(str):#誰起的這個名字
strs = re.split("||[0-9]+;||<.*?>", str)#各種匹配,通過「|」分隔
ans = ''
#將切分的結果組合起來
for each in strs:
ans += each
return ans
這樣網頁上面的正文基本全部能夠提取出來。
到此整個採集也就結束了。
python多執行緒採集例項
python多執行緒採集例項 python作為一種流行的指令碼程式語言,其功能的強大自然不言而喻,豆瓣網就是使用python開發的,另外很多的it公司了在使用python,也充分說明了python的強大,下面是python多執行緒採集例項 python多執行緒採集例項 coding gb2312 a...
PHP socket採集例項
首先用到兩個函式 gethostbyname 獲取主機的ip位址 getprotobyname 返回取得協議編號 php socket函式 socket accept 接受乙個socket連線 socket bind 把socket繫結在乙個ip位址和埠上 socket clear error 清除...
Python 練習例項2
題目2 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬...