python第三次做業-mooc筆記

1.註冊中國大學MOOChtml

2.選擇北京理工大學嵩天老師的《Python網絡爬蟲與信息提取》MOOC課程
3.學習完成第0周至第4周的課程內容,並完成各周做業html5


4.提供圖片或網站顯示的學習進度,證實學習的過程。程序員


5.寫一篇很多於1000字的學習筆記,談一下學習的體會和收穫。編程

 

首先是對Python軟件的基礎瞭解。最經常使用的Python IDE工具:IDLE,Sublime Text,PyCharm,Anaconda&Spyder。瀏覽器

1).IDLE優勢有:自帶,默認,經常使用,入門級。建議300行如下服務器

2).Sublime Text:這是一個專爲程序員開發的第三方專用編程工具,有專業的編程體驗,有多重編程風格,是很是適合程序員的一款網絡

3).PyCharm:社區版免費,較爲簡單且集成度高,適合較爲複雜的工程app

4).Anaconda:開源免費,支持近800個第三方庫工具

下面是正式的學習環節:post

先安裝Requests庫與測試,成功後開始認識Requests庫的主要方法,大概有7個:request,get,head,post,put,patch和delete。其功能都是對應HTTP裏的功能。

Response對象一共有5個,status_code(HTTP請求的返回狀態,200表示成功,404表示失敗),text(url對應的頁面內容),enconding(從HTTP header中猜想的響應內容編碼方式),apparent_encoding(從內容中分析出的響應內容編碼方式)和content(HTTP響應內容的二進制形式)。

Requests庫異常:

1)requests.ConnectionError:網絡鏈接錯誤異常。

2)requests.HTTPError:HTTP錯誤異常

3)requests.URLRequired:URL缺失異常

4)requests.TooManyRedirects:超過最大重定向次數,產生重定向異常

5)requests.ConnectTimeout:鏈接遠程服務器超時異常

6)requests.Timeout:請求URL超時,產生超時異常。

HTTP協議對資源的操做:GET:請求獲取URL位置的資源。 HEAD:請求獲取該資源頭部信息。 POST:請求向URL位置的資源後附加新數據。 PUT:請求向URL位置存儲一個資源,覆蓋原位置的資源 。PATCH:請求局部更新URL位置的資源,即改變該處資源的部份內容 。DELETE:請求刪除URL位置存儲的資源。

網絡爬蟲的法律風險:

1)服務器上的數據有產權歸屬

2)網絡爬蟲獲取的數據牟利後將帶來法律風險

3)網絡爬蟲可能具有突破簡單控制的能力,得到被保護數據,從而泄露我的隱私

網絡爬蟲的限制:

1)來源審查:判斷User-Agent進行限制(檢查來訪HTTP協議頭的User-Agent域,只響應瀏覽器或友好爬蟲的訪問)

2)發佈公告:Robots協議(告知全部爬蟲網站的爬取策略,要求爬蟲遵照)

Beautiful Soup庫解析器:soup=BeautifulSoup(‘<html>data</html>’,’html.parser’)

解析器:

1) bs4的HTML解析器:BeautifulSoup(mk,’html.parser’)--條件:安裝

2) bs4 lxml的HTML解析器:BeautifulSoup(mk,’lxml’)--條件:pip install lxml  

3) lxml的XML解析器:BeautifulSoup(mk,’xml’)--條件:pip install lxml  

4) html5lib的解析器:BeautifulSoup(mk,’html5lib’)--條件:pip install html5lib

BeautifulSoup的基本元素:

1)Tag:標籤,最基本的信息組織單元,分別用<>和</>代表開頭和結尾  

2)Name:標籤的名字,<p></p>的名字是’p’,格式:<tag>.name  

3)Attributes:標籤的屬性,字典形式組織,格式:<tag>.attrs  

4)NavigableString:標籤內非屬性字符串,<>...</>中字符串,格式:<tag>.string  

5)Comment:標籤內字符串的註釋部分,一種特殊的Comment類型

標籤數的下行遍歷

1).contents:子節點的列表,將<tag>全部兒子節點存入列表  

2).Children:子節點的迭代類型,與.contents相似,用於循環遍歷兒子節點  

3).descendants:子孫節點的迭代類型,包含全部子孫節點,用於循環遍歷。

BeautifulSoup類型是標籤數的根節點。

標籤數的上行遍歷:

1).parent:節點的父親標籤

 2).parents:節點先輩標籤的迭代類型,用於循壞遍歷先輩節點。

標籤數的平行遍歷:

1).next_sibling:返回按照HTML文本順序的下一個平行節點標籤  

2).previous_sibling:返回按照HTML文本順序的上一個平行節點標籤  

3).next_siblings:迭代類型,返回按照HTML文本順序的後續全部平行節點標籤

4).previous_siblings:迭代類型,返回按照HTML文本順序的前續全部平行節點標籤。

總結:經過這些天嵩天老師的教誨,我受益不淺。初步踏入Python爬蟲殿堂的大門,我深入地認識到了爬蟲的強大。也讓我打下了堅實的基礎。但願能更進一步學習。

相關文章
相關標籤/搜索