天天看點

python資料爬取---簡單頁面的爬取

1、準備Requests和User Agent

python中能實作爬蟲功能的庫有若幹個,而最簡單最容易上手的,要數Requests庫,它是一個常用的http請求庫,首先用pip install requests 進行安裝才能使用。

User Agent一般翻譯為使用者代理,它的作用是向伺服器自報家門。為什麼要這個User Agent呢?因為我們要讓爬蟲假裝是一個正常的使用者在使用浏覽器對目标網站的伺服器送出請求。那怎麼知道自己的User Agent,最簡單的方法就是在百度中搜尋UA查詢。

2、确定一個目标網站并分析其結構

比如,我們現在要以中央政府官網作為目标網站,位址http://www.gov.cn,我們要抓取最新政策資訊。

政策專欄的位址是:http://www.gov.cn/zhengce/index.htm,該頁面顯示近10條最新政策标題;

最新政策專欄的位址是:http://www.gov.cn/zhengce/zuixin.htm,該頁面顯示近60條最新政策标題

點選某一政策名,進入該政策詳細内容,如國務院關于促進鄉村産業振興的指導意見,位址是:http://www.gov.cn/zhengce/content/2019-06/28/content_5404170.htm

3、爬取目标頁面并儲存為本地檔案

#導入http請求庫requests
import requests
#指定我們的user agent
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
headers = {'User-Agent':user_agent}
# requests.get()方法讀取網頁
r = requests.get("http://www.gov.cn/zhengce/content/2019-06/28/content_5404170.htm",
                headers = headers)
print(r.text)
           
python資料爬取---簡單頁面的爬取

得到了一個html檔案,但是中文亂碼,因為編碼不一樣

#修改讀取的編碼方式,因為charset="utf-8",是以要修改成 "utf-8",否則中文會亂碼
r.encoding='utf-8'
print(r.text)
           
python資料爬取---簡單頁面的爬取
#requests.get()得到了一個html檔案,可以儲存起來
#指定儲存html檔案的路徑、檔案名和編碼方式
with open ('/Users/Eric/Documents/2019/python/requests.html','w',encoding = 'utf8') as f:
    #将文本寫入
    f.write(r.text)
           

如果爬取一個頁面并儲存并不會提升我們的效率,下節會講複雜一點的爬取

繼續閱讀