摘要:在不懂和等協議的情況下,我直接打個比方來解釋一下什么是請求,以瀏覽器為例,人在瀏覽器輸入,然后敲擊鍵,直到頁面出現,整個過程,我們可以抽象為我們向百度服務器發起的一次請求。更專業,更詳細的解釋,自己去百度學習吧。
前言
??剛學完python基礎,想學習爬蟲的新手,這里有你想要的東西。
??本文著重點在于教新手如何學習爬蟲,并且會以外行人的思維進行形象地講解。最近我一兄弟想學,我就想寫個教學給他,然后想不如分享到網絡上,給熱愛學習的人們一起學習探討。各位大神路過,如發現文章中有不妥之處,敬請指出,畢竟我最近剛開始學會撰寫技術文章。
python3.7.1
pip install requests pip install beautifulsoup4 pip install lxml技術講解 requests庫
??requests一般用于發起http請求,并且拿到請求的結果。http常用的請求有兩種,GET和POST,爬蟲主要用的是GET請求。
??在不懂http,https和dns,TCP/IP等協議的情況下,我直接打個比方來解釋一下什么是GET請求,以360瀏覽器為例,人在360瀏覽器輸入www.baidu.com,然后敲擊enter鍵,直到頁面出現,整個過程,我們可以抽象為我們向百度服務器發起的一次GET請求。
??更專業,更詳細的解釋,自己去百度學習吧。
??如何使用requests庫來模擬瀏覽器的行為來獲取頁面內容呢?
示例代碼如下
import requests web = requests.get("https://www.baidu.com") #向百度發起一次get請求,返回請求結果的實體類 print(web.status_code) #請求返回的狀態碼,200是OK,404是頁面不存在,500是錯誤,更多自己百度搜索 print(type(web.content)) #頁面內容的數據類型是bytes,因此需要解碼 print(type(web.content.decode())) print(web.content.decode()) #解碼之后,得到的頁面內容是結構化的字符串
輸出如下
??這樣看起來,我們獲取到的頁面內容不是我們在瀏覽器看到的圖形化界面,而是字符串,更像是一些代碼。如果你學過html和css那就不用多說了。沒學過也不要緊,現在可以簡單學一下,也就花幾分鐘了解一下就夠用了。
??html是一種標記語言,可以被瀏覽器執行,然后呈現出可視化的圖形界面。如果你把web.content.decode()這一串字符串保存在test.html里,然后雙擊打開,你會看到圖形化界面的,只不過有些圖片可能顯示不了,這里就不細說了。
??html其實很好理解,不要想得太復雜,就是一段有規律的格式化的文本。
??其基本格式就是
... ...
??html文本的標簽一般都是成雙成對,有始有終的,比如
和是一隊,千萬不能拆散,拆散就亂套了。少數除外比如我的網站
這是我的網站
效果就是
html更多標簽所代表的意義可以去這里學習http://www.runoob.com/html/ht...
??bs4(簡稱)庫是用于解析格式化文本,提取數據用的庫。
我們利用requests庫的get函數拿到網頁的內容是一段格式化的字符串,接下來就可以用bs4來解析它。
解析的示例代碼如下
from bs4 import BeautifulSoup html = """我的網站
這是我的網站
""" #從網頁拿到html的格式化的字符串,保存到html里 soup = BeautifulSoup(html, "lxml") #使用lxml解析器來解析文本,html和xml格式是類似的 print(soup.find_all("h1")) #使用find_all函數來找所有的h1標簽,返回的結果是數組 print(soup.find_all("p")) #找所有的p標簽,返回的結果是數組
運行結果如圖
更復雜一點的,比如
from bs4 import BeautifulSoup html = """我的網站
這是我的網站
測試1測試2""" soup = BeautifulSoup(html, "lxml") div_tags = soup.find_all(name="div", attrs={"class": "test-item"}) for tag in div_tags: print(type(tag)) print(tag) print(tag.string) print(tag.attrs, " ")
運行結果是
??注意,tag保存的不是字符串,而是bs4模塊中的一個標簽實體類,我們主要需要知道它的attrs屬性和string屬性,方便我們拿到一些我們想要的文本和信息,比如a標簽的href屬性就保存在attrs里。
??本文主要講了如何使用requests獲取網頁文本內容,以及如何解析html文本,更多更好用的爬蟲庫,下節課看情況再講。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43505.html
摘要:文章目錄前言爬取分析視頻教學成果展示福利入門到就業學習路線規劃小白快速入門爬蟲路線前言皮皮蝦一個沙雕而又有趣的憨憨少年,和大多數小伙伴們一樣喜歡聽歌游戲,當然除此之外還有寫作的興趣,,日子還很長,讓我們一起加油努力叭話 ...
摘要:數據分析的發展方向一般有商業方向,行業分析業務方向,和機器學習數據挖掘方向。機器學習的書籍推薦統計學習方法,機器學習,機器學習實戰三本書。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 上一篇主要分享了博主親身轉行數據分析的經歷: 【從零學起到成功轉行數據分析,我是怎么做的?】 本篇繼上一篇將分享轉行數據分析的一些經驗和學習方法,看完這篇你將會解...
摘要:我從今年的月份開始在知乎上連續回答前端開發相關的問題,至今已有將近三個月,回顧寫過的一百多條回答,不少是給迷茫的前端工作者的建議。今天我把我的思考提煉整理成文,希望能給予在迷茫中前行中的前端學習工作者一些有用的建議。 本文首發于知乎專欄——前端指南作者:Mark MFS老師轉載請注明來源。 我從今年的2月份開始在知乎上連續回答前端開發相關的問題,至今已有將近三個月,回顧寫過的一百多條回...
摘要:一些知識點有哪些方法方法前端從入門菜鳥到實踐老司機所需要的資料與指南合集前端掘金前端從入門菜鳥到實踐老司機所需要的資料與指南合集歸屬于筆者的前端入門與最佳實踐。 工欲善其事必先利其器-前端實習簡歷篇 - 掘金 有幸認識很多在大廠工作的學長,在春招正式開始前為我提供很多內部推薦的機會,非常感謝他們對我的幫助。現在就要去北京了,對第一份正式的實習工作也充滿期待,也希望把自己遇到的一些問題和...
閱讀 3424·2021-11-15 11:39
閱讀 1563·2021-09-22 10:02
閱讀 1313·2021-08-27 16:24
閱讀 3600·2019-08-30 15:52
閱讀 3415·2019-08-29 16:20
閱讀 828·2019-08-28 18:12
閱讀 553·2019-08-26 18:27
閱讀 721·2019-08-26 13:32