(01)最簡(jiǎn)單的爬數(shù)據(jù)

  • 請(qǐng)求:導(dǎo)入import requests
  • r=requests.get('中間是網(wǎng)址') 再提取 html=r.content
  • 解析:導(dǎo)入package(包)
  • from bs4 import BeautifulSoup 然后創(chuàng)建一BeautifulSoup對(duì)象:soup = BeautifulSoup(html,'html.parser') #html.parser是解析器a_s = div_people_list.find_all('a', attrs={'target': '_blank'})组橄; 使用BeautifulSoup對(duì)象的find方法

div_people_list = soup.find('div', attrs={'class': 'people_list'})
這里我們使用了BeautifulSoup對(duì)象的find方法嘉熊。這個(gè)方法的意思是找到帶有‘div’這個(gè)標(biāo)簽并且參數(shù)包含" class = 'people_list' "的HTML代碼悔雹。如果有多個(gè)的話(huà)宠进,find方法就取第一個(gè)腰鬼。那么如果有多個(gè)呢劣领?正好我們后面就遇到了浓恳,現(xiàn)在我們要取出所有的“a”標(biāo)簽里面的內(nèi)容:

a_s = div_people_list.find_all('a', attrs={'target': '_blank'})
這里我們使用find_all方法取出所有標(biāo)簽為“a”并且參數(shù)包含“ target = ‘_blank‘ ”的代碼琢感,返回一個(gè)列表「庋常“a”標(biāo)簽里面的“href”參數(shù)是我們需要的老師個(gè)人主頁(yè)的信息亩鬼,而標(biāo)簽里面的文字是老師的姓名。我們繼續(xù):
這里我們使用BeautifulSoup支持的方法阿蝶,使用類(lèi)似于Python字典索引的方式把“a”標(biāo)簽里面“href”參數(shù)的值提取出來(lái)雳锋,賦值給url(Python實(shí)際上是對(duì)對(duì)象的引用),用get_text()方法把標(biāo)簽里面的文字提起出來(lái)羡洁。

1玷过、請(qǐng)求
這里我們使用的package是requests。這是一個(gè)第三方模塊(具體怎么下載以后再說(shuō))筑煮,對(duì)HTTP協(xié)議進(jìn)行了高度封裝辛蚊,非常好用。所謂HTTP協(xié)議真仲,簡(jiǎn)單地說(shuō)就是一個(gè)請(qǐng)求過(guò)程袋马。我們先不管這玩意是啥,以后再討論秸应。這個(gè)部分虑凛,我們要實(shí)現(xiàn)的目的是把網(wǎng)頁(yè)請(qǐng)求(或者說(shuō)下載)下來(lái)。
首先我們導(dǎo)入requests

import requests
下面調(diào)用requests
的get函數(shù)软啼,把網(wǎng)頁(yè)請(qǐng)求下來(lái):
r = requests.get('http://www.wise.xmu.edu.cn/people/faculty')

返回的“r”的是一個(gè)包含了整個(gè)HTTP協(xié)議需要的各種各樣的東西的對(duì)象桑谍。我們先不管都有啥,先把我們需要的網(wǎng)頁(yè)提取出來(lái):
html = r.content
好了祸挪,到這一步我們已經(jīng)獲取了網(wǎng)頁(yè)的源代碼锣披。具體源代碼是什么樣的呢?右鍵贿条,點(diǎn)擊“查看源文件”或者“查看源”就可以看到:
view-source:http://www.wise.xmu.edu.cn/people/faculty

2盈罐、解析
當(dāng)然從這一大坨代碼里面找信息太麻煩了。我們可以用瀏覽器提供的另外一個(gè)工具:審查元素闪唆。這里我們先不講怎么使用審查元素,先從源代碼里面找钓葫。找到的我們需要的信息如下:


這里我們使用bs4來(lái)解析悄蕾。bs4是一個(gè)非常好的解析網(wǎng)頁(yè)的庫(kù),后面我們會(huì)詳細(xì)介紹。這次的解析先給大家看bs4里面最常用的幾個(gè)BeautifulSoup對(duì)象的方法(method)帆调。我們使用的這幾個(gè)方法奠骄,主要是通過(guò)HTML的標(biāo)簽和標(biāo)簽里面的參數(shù)來(lái)定位,然后用特定方法(method)提取數(shù)據(jù)番刊。
首先還是導(dǎo)入package:
from bs4 import BeautifulSoup
然后創(chuàng)建一個(gè)BeautifulSoup對(duì)象:
soup = BeautifulSoup(html,'html.parser') #html.parser是解析器
下面我們根據(jù)我們看到的網(wǎng)頁(yè)提取含鳞。首先提取我復(fù)制的這部分的代碼的第一行,先定位到這部分代碼:
div_people_list = soup.find('div', attrs={'class': 'people_list'})
這里我們使用了BeautifulSoup對(duì)象的find方法芹务。這個(gè)方法的意思是找到帶有‘div’這個(gè)標(biāo)簽并且參數(shù)包含" class = 'people_list'
"的HTML代碼蝉绷。如果有多個(gè)的話(huà),find方法就取第一個(gè)枣抱。那么如果有多個(gè)呢熔吗?正好我們后面就遇到了,現(xiàn)在我們要取出所有的“a”標(biāo)簽里面的內(nèi)容:
a_s = div_people_list.find_all('a', attrs={'target': '_blank'})
這里我們使用find_all
方法取出所有標(biāo)簽為“a”并且參數(shù)包含“ target = ‘_blank‘
”的代碼佳晶,返回一個(gè)列表桅狠。“a”標(biāo)簽里面的“href”參數(shù)是我們需要的老師個(gè)人主頁(yè)的信息轿秧,而標(biāo)簽里面的文字是老師的姓名中跌。我們繼續(xù):
for a in a_s:

url = a['href']

name = a.get_text()

這里我們使用BeautifulSoup支持的方法,使用類(lèi)似于Python字典索引的方式把“a”標(biāo)簽里面“href”參數(shù)的值提取出來(lái)菇篡,賦值給url(Python實(shí)際上是對(duì)對(duì)象的引用)漩符,用get_text()
方法把標(biāo)簽里面的文字提起出來(lái)。
事實(shí)上逸贾,使用這四個(gè)方法就可以正常地解析大部分HTML了陨仅。不過(guò)如果只用這四個(gè)方法,很多程序會(huì)寫(xiě)的異常原始铝侵。所以我們后面再繼續(xù)介紹更多解析方法灼伤。
儲(chǔ)存

這里我們先弱化一下具體的儲(chǔ)存方法,先輸出到控制臺(tái)上面咪鲜。我們?cè)趧偛诺拇a的基礎(chǔ)上加一行代碼:
for a in a_s:

url = a['href']

name = a.get_text()

print name,url

使用print關(guān)鍵詞把得到的數(shù)據(jù)print出來(lái)狐赡。讓我們看看結(jié)果:


好的,到這里一個(gè)原型就完成了疟丙。這就是一個(gè)非常簡(jiǎn)單的爬蟲(chóng)颖侄,總代碼不過(guò)十幾行。復(fù)雜到幾百幾千行的爬蟲(chóng)享郊,都是在這樣的一個(gè)原型的基礎(chǔ)上不斷深化览祖、不斷完善得到的。

from bs4 import BeautifulSoup
import requests
r = requests.get('http://www.wise.xmu.edu.cn/people/faculty')
html = r.content

view-source:http://www.wise.xmu.edu.cn/people/faculty

soup = BeautifulSoup(html,'html.parser') #html.parser是解析器
div_people_list = soup.find('div', attrs={'class': 'people_list'})
a_s = div_people_list.find_all('a', attrs={'target': '_blank'})
for a in a_s:
url = a['href']
name = a.get_text()

for a in a_s:
    url = a['href']
    name = a.get_text()
    print (name,url)

原網(wǎng)頁(yè)http://www.100weidu.com/weixin/CMy033CKgj

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炊琉,一起剝皮案震驚了整個(gè)濱河市展蒂,隨后出現(xiàn)的幾起案子又活,更是在濱河造成了極大的恐慌,老刑警劉巖锰悼,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柳骄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡箕般,警方通過(guò)查閱死者的電腦和手機(jī)耐薯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丝里,“玉大人曲初,你說(shuō)我怎么就攤上這事”撸” “怎么了复斥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)械媒。 經(jīng)常有香客問(wèn)我目锭,道長(zhǎng),這世上最難降的妖魔是什么纷捞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任痢虹,我火速辦了婚禮,結(jié)果婚禮上主儡,老公的妹妹穿的比我還像新娘奖唯。我一直安慰自己,他們只是感情好糜值,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布丰捷。 她就那樣靜靜地躺著,像睡著了一般寂汇。 火紅的嫁衣襯著肌膚如雪病往。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天骄瓣,我揣著相機(jī)與錄音停巷,去河邊找鬼。 笑死榕栏,一個(gè)胖子當(dāng)著我的面吹牛畔勤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扒磁,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼庆揪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了妨托?” 一聲冷哼從身側(cè)響起嚷硫,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤检访,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后仔掸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡医清,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年起暮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片会烙。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡负懦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柏腻,到底是詐尸還是另有隱情纸厉,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布五嫂,位于F島的核電站颗品,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沃缘。R本人自食惡果不足惜躯枢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望槐臀。 院中可真熱鬧锄蹂,春花似錦、人聲如沸水慨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晰洒。三九已至朝抖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欢顷,已是汗流浹背槽棍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抬驴,地道東北人炼七。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像布持,于是被迫代替她去往敵國(guó)和親豌拙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容