【Python3 爬蟲】爬取博客園首頁所有文章
阿新 • • 發佈:2018-04-22
表達式 技術 標記 itl 1.0 headers wow64 ignore windows
首先,我們確定博客園首頁地址為:https://www.cnblogs.com/
我們打開可以看到有各種各樣的文章在首頁,如下圖:
我們以上圖標記的文章為例子吧!打開網頁源碼,搜索Docker,搜索結果如下圖:
從上圖後紅色標記部分可以看出,我們使用正則表達式即可匹配該網址,我們匹配到該網址之後,將該網址對應的內容下載到到底進行存儲。
實現代碼
import urllib.request import re """ 爬取cnblogs首頁所有的文章 """ url = "http://www.cnblogs.com/" headers = ("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0") opener = urllib.request.build_opener() opener.addheaders = [headers] urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode("utf-8","ignore") #此處的(.*?)是匹配href後所有內容,直到”結束 rule = ‘<h3><a class="titlelnk" href="(.*?)"‘ result = re.compile(rule).findall(data)for i in range(0,len(result)): file = "D:/source/"+str(i)+".html" urllib.request.urlretrieve(result[i],filename=file) print("第"+str(i+1)+"次成功")
運行結果:
第1次成功
第2次成功
第3次成功
第4次成功
第5次成功
第6次成功
第7次成功
第8次成功
第9次成功
第10次成功
第11次成功
第12次成功
第13次成功
第14次成功
第15次成功
第16次成功
第17次成功
第18次成功
第19次成功
第20次成功
[Finished in 9.3s]
爬取完成後,我們可以在相應路徑下看到爬取後的內容
【Python3 爬蟲】爬取博客園首頁所有文章