1. 程式人生 > >Python網路爬蟲與資訊提取Day1

Python網路爬蟲與資訊提取Day1

Python網路爬蟲與資訊提取
一、導學
掌握定向網路資料爬取和網頁解析的基本能力
1、Requests庫:自動爬取HTML頁面,自動向網路提交請求
2、robots.txt:網路爬蟲排除標準
3、Beautiful Soup庫:解析HTML頁面
4、Projects:實戰專案A/B
5、Re庫:正則表示式詳解,提取頁面關鍵資訊
6、Scarpy*:網路爬蟲原理介紹,專業爬蟲框架介紹
二、Python開發工具
文字工具類IDE:IDLE,Sublime Text
整合工具類IDE:PyCharm,Anaconda & Spyder,Wings,Eclipse
三、Requests庫入門
1、安裝Requests庫,開啟cmder,輸入命令:pip install requests


2、測試一下是否安裝成功
開啟Python自帶的IDLE,輸入一下命令
import requests#匯入Requests庫
r = requests.get("http://www.baidu.com")#連線百度官網
r.status_code#測試是否安裝庫成功,如果安裝成功則狀態碼會顯示200
r.encoding = "utf-8"#打印出百度官網的網頁
r.text


3、Requests庫的常用方法:request,get,head,post,put,patch,delete
(1)get方法
r = requests.get(url,params=None,**kwargs)
url:擬獲取頁面的url連線
params:url中的額外引數,字典或位元組流格式,可選
**kwargs:12個控制訪問的引數
另外還有其他常用方法:head(),post(),put(),patch(),delete(),options()
1)Response物件的屬性
r.status_code:Http請求的返回狀態,200表示連線成功,404表示失敗
r.text:Http響應內容的字串形式,即url對應的頁面內容
r.encoding:從HTTP header 中猜測的響應內容編碼方式
r.apparent_encoding:從內容中分析出的響應內容編碼方式(備選編碼方式)
r.content:Http響應內容的二進位制形式
2)Requests庫的異常
requests.ConnectionError:網路連線錯誤異常,如DNS查詢失敗、拒絕連線等
requests.HTTPErrot:HTTP錯誤異常
requests.URLRequired:URL缺失異常
requests.TooManyRedirectsL:超過最大重定向次數,產生重定向異常
requests.ConnectTimeout:連線遠端伺服器超時異常
requests.Timeout:請求URL超時,產生超時異常
r.raise_for_status():如果不是200,產生異常requests.HTTPErrot
3)爬取網頁的通用程式碼框架:
import requests#匯入Requests庫
def getHTMLText(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "產生異常"
if _name_=="__main__":
    url = "http://www.baidu.com"
    print(getHTMLText((url))


4)HTTP協議
URL路徑格式:http://host[:port][path]
host:合法的Internet主機域名或IP地址
port;埠號,預設埠為80
path:請求資源的路徑
HTTP協議對資源的操作:GET,HEAD 取資源|發資源 POST,PUT,PATCH,DELETE
(3)request方法
引數:
四、robots.txt 
五、Requests庫例項