urllib是python3.x中提供的一系列操作的URL的庫,它可以輕松的模擬用戶使用瀏覽器訪問網頁.
Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫.它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間.
1、安裝python最新安裝包3.5.2
注:安裝的時候注意勾選添加到PATH(系統環境變量)中
驗證安裝是否成功: 在命令行cmd中輸入python,如果進入到python的編輯環境,則安裝成功。
2、安裝urllib
在python命令行中輸入:from urllib.request import urlopen
顯示如下:沒有出現錯誤信息則安裝成功
3、安裝BeautifulSoup
在cmd中輸入:pip install beautifulsoup4
驗證是否裝成功:form bs4 import BeautifulSoup 如果沒有報錯就是安裝成功
4、urllib的用法介紹
(1)使用步驟
- 導入urllib庫的request模塊 from urllib import request
- 請求URL req = request.Request(URL)
- 設置請求頭 req.add_header(key,value)
- 使用響應對象輸出數據print(resp.read().decode('utf-8'))
from urllib import request req = request.Request("http://www.baidu.com") req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0") resp = request.urlopen(req) print(resp.read().decode("utf-8"))
這里我用sublime Text 測試:可以看到百度首頁的數據是可以被獲取下來的。
(2)post請求
- 導入urllib庫下面的parse: from urllib import parse
- 使用urlencode生成post數據
postData = parse.urlencode([
(key1,val1),
(key2,val2),
(key3,val3)
])
- 使用postData發送POST請求 request.urlopen(req,data = postData.encode('utf-8'))
- 得到請求狀態 resp.status
- 得到服務器類型 resp.reason
from urllib.request import urlopen from urllib.request import Request from urllib import parse req = Request('http://huochepiao.114piaowu.com/train/ydTrainZdz_searchAdapter.action') postData = parse.urlencode({ 'fromStation':'上海', 'godateStr':'2016-09-07', 'searchType':0, 'toStation':'廣州' }).encode('utf-8') req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0") resp = urlopen(req,data = postData) print(resp.read().decode('utf-8'))
5、beautifulSoup使用簡介
http://beautifulsoup.readthedocs.io/zh_CN/latest/#id20