成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python爬蟲(chóng)教學(xué)(寫給入門的新手) 一

zone / 1027人閱讀

摘要:在不懂和等協(xié)議的情況下,我直接打個(gè)比方來(lái)解釋一下什么是請(qǐng)求,以瀏覽器為例,人在瀏覽器輸入,然后敲擊鍵,直到頁(yè)面出現(xiàn),整個(gè)過(guò)程,我們可以抽象為我們向百度服務(wù)器發(fā)起的一次請(qǐng)求。更專業(yè),更詳細(xì)的解釋,自己去百度學(xué)習(xí)吧。

前言

??剛學(xué)完python基礎(chǔ),想學(xué)習(xí)爬蟲(chóng)的新手,這里有你想要的東西。
??本文著重點(diǎn)在于教新手如何學(xué)習(xí)爬蟲(chóng),并且會(huì)以外行人的思維進(jìn)行形象地講解。最近我一兄弟想學(xué),我就想寫個(gè)教學(xué)給他,然后想不如分享到網(wǎng)絡(luò)上,給熱愛(ài)學(xué)習(xí)的人們一起學(xué)習(xí)探討。各位大神路過(guò),如發(fā)現(xiàn)文章中有不妥之處,敬請(qǐng)指出,畢竟我最近剛開(kāi)始學(xué)會(huì)撰寫技術(shù)文章。

環(huán)境安裝

python3.7.1

pip install requests
pip install beautifulsoup4
pip install lxml
技術(shù)講解 requests庫(kù)

??requests一般用于發(fā)起http請(qǐng)求,并且拿到請(qǐng)求的結(jié)果。http常用的請(qǐng)求有兩種,GET和POST,爬蟲(chóng)主要用的是GET請(qǐng)求。
??在不懂http,https和dns,TCP/IP等協(xié)議的情況下,我直接打個(gè)比方來(lái)解釋一下什么是GET請(qǐng)求,以360瀏覽器為例,人在360瀏覽器輸入www.baidu.com,然后敲擊enter鍵,直到頁(yè)面出現(xiàn),整個(gè)過(guò)程,我們可以抽象為我們向百度服務(wù)器發(fā)起的一次GET請(qǐng)求。
??更專業(yè),更詳細(xì)的解釋,自己去百度學(xué)習(xí)吧。
??如何使用requests庫(kù)來(lái)模擬瀏覽器的行為來(lái)獲取頁(yè)面內(nèi)容呢?
示例代碼如下

import requests
web = requests.get("https://www.baidu.com")  #向百度發(fā)起一次get請(qǐng)求,返回請(qǐng)求結(jié)果的實(shí)體類
print(web.status_code)    #請(qǐng)求返回的狀態(tài)碼,200是OK,404是頁(yè)面不存在,500是錯(cuò)誤,更多自己百度搜索
print(type(web.content))    #頁(yè)面內(nèi)容的數(shù)據(jù)類型是bytes,因此需要解碼
print(type(web.content.decode()))
print(web.content.decode())    #解碼之后,得到的頁(yè)面內(nèi)容是結(jié)構(gòu)化的字符串

輸出如下


??這樣看起來(lái),我們獲取到的頁(yè)面內(nèi)容不是我們?cè)跒g覽器看到的圖形化界面,而是字符串,更像是一些代碼。如果你學(xué)過(guò)html和css那就不用多說(shuō)了。沒(méi)學(xué)過(guò)也不要緊,現(xiàn)在可以簡(jiǎn)單學(xué)一下,也就花幾分鐘了解一下就夠用了。
??html是一種標(biāo)記語(yǔ)言,可以被瀏覽器執(zhí)行,然后呈現(xiàn)出可視化的圖形界面。如果你把web.content.decode()這一串字符串保存在test.html里,然后雙擊打開(kāi),你會(huì)看到圖形化界面的,只不過(guò)有些圖片可能顯示不了,這里就不細(xì)說(shuō)了。
??html其實(shí)很好理解,不要想得太復(fù)雜,就是一段有規(guī)律的格式化的文本。
??其基本格式就是


...
...


??html文本的標(biāo)簽一般都是成雙成對(duì),有始有終的,比如和是一隊(duì),千萬(wàn)不能拆散,拆散就亂套了。少數(shù)除外比如
是換行用的,可以不用配對(duì)。
這里我們主要講body標(biāo)簽,網(wǎng)頁(yè)的主要內(nèi)容都是在這個(gè)標(biāo)簽里顯示的,比如標(biāo)題,段落,圖片等
在test.html里我們寫入一下代碼并且保存。



我的網(wǎng)站

這是我的網(wǎng)站

效果就是


html更多標(biāo)簽所代表的意義可以去這里學(xué)習(xí)http://www.runoob.com/html/ht...

beautifulsoup4庫(kù)

??bs4(簡(jiǎn)稱)庫(kù)是用于解析格式化文本,提取數(shù)據(jù)用的庫(kù)。
我們利用requests庫(kù)的get函數(shù)拿到網(wǎng)頁(yè)的內(nèi)容是一段格式化的字符串,接下來(lái)就可以用bs4來(lái)解析它。
解析的示例代碼如下

from bs4 import BeautifulSoup
html = """

我的網(wǎng)站

這是我的網(wǎng)站

""" #從網(wǎng)頁(yè)拿到html的格式化的字符串,保存到html里 soup = BeautifulSoup(html, "lxml") #使用lxml解析器來(lái)解析文本,html和xml格式是類似的 print(soup.find_all("h1")) #使用find_all函數(shù)來(lái)找所有的h1標(biāo)簽,返回的結(jié)果是數(shù)組 print(soup.find_all("p")) #找所有的p標(biāo)簽,返回的結(jié)果是數(shù)組

運(yùn)行結(jié)果如圖

更復(fù)雜一點(diǎn)的,比如

from bs4 import BeautifulSoup
html = """

我的網(wǎng)站

這是我的網(wǎng)站

測(cè)試1
測(cè)試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, " ")

運(yùn)行結(jié)果是


??注意,tag保存的不是字符串,而是bs4模塊中的一個(gè)標(biāo)簽實(shí)體類,我們主要需要知道它的attrs屬性和string屬性,方便我們拿到一些我們想要的文本和信息,比如a標(biāo)簽的href屬性就保存在attrs里。

總結(jié)

??本文主要講了如何使用requests獲取網(wǎng)頁(yè)文本內(nèi)容,以及如何解析html文本,更多更好用的爬蟲(chóng)庫(kù),下節(jié)課看情況再講。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43505.html

相關(guān)文章

  • 【微信小程序爬蟲(chóng)】表情包小程序圖文視頻教學(xué),從零寫起,保姆教程!??!

    摘要:文章目錄前言爬取分析視頻教學(xué)成果展示福利入門到就業(yè)學(xué)習(xí)路線規(guī)劃小白快速入門爬蟲(chóng)路線前言皮皮蝦一個(gè)沙雕而又有趣的憨憨少年,和大多數(shù)小伙伴們一樣喜歡聽(tīng)歌游戲,當(dāng)然除此之外還有寫作的興趣,,日子還很長(zhǎng),讓我們一起加油努力叭話 ...

    coordinate35 評(píng)論0 收藏0
  • 【精華分享】:轉(zhuǎn)行數(shù)據(jù)分析份學(xué)習(xí)清單

    摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務(wù)方向,和機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘方向。機(jī)器學(xué)習(xí)的書(shū)籍推薦統(tǒng)計(jì)學(xué)習(xí)方法,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)實(shí)戰(zhàn)三本書(shū)。 作者:xiaoyu 微信公眾號(hào):Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉(zhuǎn)行數(shù)據(jù)分析的經(jīng)歷: 【從零學(xué)起到成功轉(zhuǎn)行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉(zhuǎn)行數(shù)據(jù)分析的一些經(jīng)驗(yàn)和學(xué)習(xí)方法,看完這篇你將會(huì)解...

    suemi 評(píng)論0 收藏0
  • 寫給在迷茫中前行前端學(xué)習(xí)/工作者

    摘要:我從今年的月份開(kāi)始在知乎上連續(xù)回答前端開(kāi)發(fā)相關(guān)的問(wèn)題,至今已有將近三個(gè)月,回顧寫過(guò)的一百多條回答,不少是給迷茫的前端工作者的建議。今天我把我的思考提煉整理成文,希望能給予在迷茫中前行中的前端學(xué)習(xí)工作者一些有用的建議。 本文首發(fā)于知乎專欄——前端指南作者:Mark MFS老師轉(zhuǎn)載請(qǐng)注明來(lái)源。 我從今年的2月份開(kāi)始在知乎上連續(xù)回答前端開(kāi)發(fā)相關(guān)的問(wèn)題,至今已有將近三個(gè)月,回顧寫過(guò)的一百多條回...

    羅志環(huán) 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)-從入門到Offer - 收藏集 - 掘金

    摘要:一些知識(shí)點(diǎn)有哪些方法方法前端從入門菜鳥(niǎo)到實(shí)踐老司機(jī)所需要的資料與指南合集前端掘金前端從入門菜鳥(niǎo)到實(shí)踐老司機(jī)所需要的資料與指南合集歸屬于筆者的前端入門與最佳實(shí)踐。 工欲善其事必先利其器-前端實(shí)習(xí)簡(jiǎn)歷篇 - 掘金 有幸認(rèn)識(shí)很多在大廠工作的學(xué)長(zhǎng),在春招正式開(kāi)始前為我提供很多內(nèi)部推薦的機(jī)會(huì),非常感謝他們對(duì)我的幫助?,F(xiàn)在就要去北京了,對(duì)第一份正式的實(shí)習(xí)工作也充滿期待,也希望把自己遇到的一些問(wèn)題和...

    sf_wangchong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<