1.安裝pip
我的個人桌面系統用的linuxmint,系統默認沒有安裝pip,考慮到後面安裝requests模塊使用pip,所以我這裏第壹步先安裝pip。
$ sudo apt install python-pip安裝成功,查看PIP版本:
$ pip -V2.安裝requests模塊
這裏我是通過pip方式進行安裝:
$ pip install requests
運行import requests,如果沒提示錯誤,那說明已經安裝成功了!
檢驗是否安裝成功
3.安裝beautifulsoup4
Beautiful Soup 是壹個可以從HTML或XML文件中提取數據的Python庫。它能夠通過妳喜歡的轉換器實現慣用的文檔導航,查找、修改文檔的方式。Beautiful Soup會幫妳節省數小時甚至數天的工作時間。
$ sudo apt-get install python3-bs4註:這裏我使用的是python3的安裝方式,如果妳用的是python2,可以使用下面命令安裝。
$ sudo pip install beautifulsoup44.requests模塊淺析
1)發送請求
首先當然是要導入 Requests 模塊:
>>> import requests然後,獲取目標抓取網頁。這裏我以下為例:
>>> r = requests.get('blogs.com/get?key=val。 Requests 允許妳使用 params 關鍵字參數,以壹個字符串字典來提供這些參數。
舉例來說,當我們google搜索“python爬蟲”關鍵詞時,newwindow(新窗口打開)、q及oq(搜索關鍵詞)等參數可以手工組成URL ,那麽妳可以使用如下代碼:
>>> payload = {'newwindow': '1', 'q': 'python爬蟲', 'oq': 'python爬蟲'}
>>> r = requests.get("blogs.com/')
>>> r.encoding
'utf-8'5)獲取響應狀態碼
我們可以檢測響應狀態碼:
>>> r = requests.get('blogs.com/')
>>> r.status_code
2005.案例演示
最近公司剛引入了壹款OA系統,這裏我以其官方說明文檔頁面為例,並且只抓取頁面中文章標題和內容等有用信息。
演示環境
操作系統:linuxmint
python版本:python 3.5.2
使用模塊:requests、beautifulsoup4
代碼如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
_author_ = 'GavinHsueh'
import requests
import bs4
#要抓取的目標頁碼地址
url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html'
#抓取頁碼內容,返回響應對象
response = requests.get(url)
#查看響應狀態碼
status_code = response.status_code
#使用BeautifulSoup解析代碼,並鎖定頁碼指定標簽內容
content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")
element = content.find_all(id='book')
print(status_code)
print(element)程序運行返回爬去結果:
抓取成功
關於爬去結果亂碼問題
其實起初我是直接用的系統默認自帶的python2操作的,但在抓取返回內容的編碼亂碼問題上折騰了老半天,google了多種解決方案都無效。在被python2“整瘋“之後,只好老老實實用python3了。對於python2的爬取頁面內容亂碼問題,歡迎各位前輩們分享經驗,以幫助我等後生少走彎路。