Python採集例項2

2021-08-10 04:39:23 字數 1283 閱讀 5370

也許這裡會顯得多此一舉,但是基於我對解耦的強烈願望,我還是果斷地寫到檔案裡了。後面如果採用物件導向程式設計,重構起來是十分方便的。

獲取網頁內容部分也是相對簡單的,但是需要把網頁的內容都儲存到乙個資料夾裡。

這裡有幾個新的用法:

複製** **如下:

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萬...