工具:
urllib.request庫可以模擬瀏覽器傳送網頁請求並獲取request的結果。import
urllib
.request
以科技類新聞為例,擬爬取這樣一篇文章。
首先,傳送請求
寫入獲取到的網頁,並轉化成python可讀的字元html
=""request
=urllib
.request
.request
(html
)
輸出看看:response
=urllib
.request
.urlopen
(request)#
獲取網頁
html_page
=response
.read()
.decode
("utf-8")#
按utf-
8格式讀取,存入html_page
結果顯示,python已經爬取了網頁全部資訊, 接下來就是資料清洗部分了。
弄清楚過程後,將上面**合併成精簡形式:
上面抓取的網頁顯示混亂,利用beautifulsoup庫,先將上述網頁轉化成標準形式輸出。response
=urllib
.request
.urlopen
("")#
獲取網頁
html_page
=response
.read()
.decode
("utf-8")#
按utf-
8格式讀取,存入html_page
觀察發現,我們想提取的文字都在和之間,只要提取這部分就可以。
嘗試用正則匹配:
發現還是有很多標籤和超連結沒有去掉。
我們想要獲取的是正文body部分,觀察beautifulsoup的prettify()標準輸出:
全部正文內容提取完畢。
至此,標題+正文提取完畢。
建立txt檔案,命名為文章標題
寫入標題和正文:filename
=title
+'.txt'
可以看到python已經生成了我們抓取的文章。with
open
(filename
,'w'
,encoding
='utf-8')as
f:f.write
(title)f
.write
(div
.text)f
.close
()
檢視寫入的檔案:
用寫好的爬蟲工具爬取文藝類,體育類文字:
爬蟲工具實踐成功。
爬取百度諮詢
獲取url,就是把關鍵字進行urlencode。整理爬取的內容,就是把一些 回車 空格 等雜七雜八的東西過濾掉。輸出結果下面是 import re from urllib import parse import time import requests from bs4 import beautif...
NodeJs Express 爬取百度新聞
第一步 使用express建立reptile應用 express reptile 第二步 reptile應用依賴的第三方模組 superagent 和cheerio superagent superagent是node裡乙個非常方便的 輕量的 漸進式的第三方客戶端請求 模組,用他來請求目標頁面 ch...
python爬蟲 之 爬取百度首頁
剛開始學習爬蟲,照著教程手打了一遍,還是蠻有成就感的。使用版本 python2.7 注意 python2的預設編碼是ascii編碼而python3預設編碼是utf 8 import urllib2 url response urllib2.urlopen url print response.rea...