Python爬蟲實(shí)戰(zhàn)入門三:簡(jiǎn)單的HTML解析——爬取騰訊新聞

上一章咱們使用Python實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的HTTP請(qǐng)求武翎,瞧著簡(jiǎn)單烈炭,爬蟲就是模擬人打開一個(gè)個(gè)URL瀏覽一個(gè)個(gè)網(wǎng)頁(yè)來(lái)爬取數(shù)據(jù)的,一個(gè)成功的HTTP請(qǐng)求宝恶,就是一個(gè)爬蟲的基礎(chǔ)符隙。

接下來(lái),咱們以一個(gè)實(shí)際的例子:爬取百度新聞垫毙,來(lái)介紹使用BeautifulSoup對(duì)HTML進(jìn)行解析處理霹疫。

爬取騰訊新聞

1、尋找數(shù)據(jù)特征

騰訊新聞的網(wǎng)址URL為:http://news.qq.com/

我們打開網(wǎng)頁(yè)看看:

我們需要爬取這個(gè)頁(yè)面每一條新聞的標(biāo)題综芥,鼠標(biāo)右擊一條新聞的標(biāo)題丽蝎,選擇“審查元素”,出現(xiàn)下圖的窗口:

審查元素

圖片中紅框的位置就是那一條新聞標(biāo)題在HTML中的結(jié)構(gòu)膀藐、位置和表現(xiàn)形式:

北京2016年39天重污染

它上一級(jí)元素為:屠阻,再上一級(jí)元素為:

我們?cè)倏戳硪粭l新聞的標(biāo)題,發(fā)現(xiàn)它的結(jié)構(gòu)和之前我們分析的新聞標(biāo)題的結(jié)構(gòu)是一樣的:

臺(tái)擬將蔡英文賀歲春聯(lián)“自自冉冉”一詞列入辭典

通過(guò)這些信息额各,我們就可以確定新聞標(biāo)題在HTML文檔中的位置国觉。

接下來(lái),我們開始使用Python對(duì)騰訊新聞標(biāo)題進(jìn)行爬取

** 2臊泰、編寫爬取代碼

首先上完整的代碼

運(yùn)行程序蛉加,獲取到的部分結(jié)果為如下所示:

這正是我們所需要的蚜枢。

雖然代碼很簡(jiǎn)單缸逃,但還是做一點(diǎn)點(diǎn)講解,方便剛剛接觸的同學(xué)厂抽。

3需频、代碼解析

# coding:utf-8

首先,我們定義了文件的編碼形式為UTF-8筷凤,以避免一些編碼錯(cuò)誤導(dǎo)致中文亂碼昭殉。

import requests

from bs4 import BeautifulSoup

然后苞七,我們引入了相關(guān)的模塊,requests用于HTTP請(qǐng)求挪丢,BeautifulSoup用于解析HTML響應(yīng)蹂风。

url = "http://news.qq.com/"

設(shè)置一個(gè)變量url,值為騰訊新聞的URL

bdata = requests.get(url).text

使用requests.get()對(duì)URL發(fā)起GET方式的HTTP請(qǐng)求乾蓬,并使用text()方法獲取響應(yīng)的文本內(nèi)容惠啄,最后將其賦值給變量wbdata。

soup = BeautifulSoup(wbdata,'lxml')

使用BeautifulSoup對(duì)響應(yīng)文本wbdata進(jìn)行解析處理任内,這里使用的是lxml庫(kù)撵渡,如何沒(méi)有安裝,可以使用Python自帶的html.parser死嗦,效果也是一樣的趋距。

news_titles = soup.select("div.text > em.f14 > a.linkto")

在解析后的文本中,使用select選擇器越除,在文本中選擇指定的元素节腐,通常我們還會(huì)使用find()和findall()方法來(lái)進(jìn)行元素選擇。

這一步返回的為一個(gè)列表摘盆,列表內(nèi)的元素為匹配的元素的HTML源碼铜跑。

for n in news_titles:

# 提取出標(biāo)題和鏈接信息

title = n.get_text()

link = n.get("href")

data = {'標(biāo)題':title,'鏈接':link}

print(data)

對(duì)結(jié)果列表進(jìn)行遍歷,再?gòu)谋闅v的元素中提取出數(shù)據(jù)骡澈,get(“href”)表示獲取屬性名為“href”的屬性值锅纺,get_text()表示獲取標(biāo)簽的文本信息。

這樣肋殴,一個(gè)簡(jiǎn)單的騰訊新聞爬蟲就完成了囤锉,如果對(duì)requests模塊和BeautifulSoup模塊有更加深的學(xué)習(xí)欲望,可以查看它們的官方文檔护锤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末官地,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子烙懦,更是在濱河造成了極大的恐慌驱入,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氯析,死亡現(xiàn)場(chǎng)離奇詭異亏较,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)掩缓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門雪情,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人你辣,你說(shuō)我怎么就攤上這事巡通〕局矗” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵宴凉,是天一觀的道長(zhǎng)誊锭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)弥锄,這世上最難降的妖魔是什么炉旷? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮叉讥,結(jié)果婚禮上窘行,老公的妹妹穿的比我還像新娘。我一直安慰自己图仓,他們只是感情好罐盔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著救崔,像睡著了一般惶看。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上六孵,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天纬黎,我揣著相機(jī)與錄音,去河邊找鬼劫窒。 笑死本今,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的主巍。 我是一名探鬼主播冠息,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼孕索!你這毒婦竟也來(lái)了逛艰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搞旭,失蹤者是張志新(化名)和其女友劉穎散怖,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肄渗,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡镇眷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恳啥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偏灿。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丹诀,死狀恐怖钝的,靈堂內(nèi)的尸體忽然破棺而出翁垂,到底是詐尸還是另有隱情,我是刑警寧澤硝桩,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布沿猜,位于F島的核電站,受9級(jí)特大地震影響碗脊,放射性物質(zhì)發(fā)生泄漏啼肩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一衙伶、第九天 我趴在偏房一處隱蔽的房頂上張望祈坠。 院中可真熱鬧,春花似錦矢劲、人聲如沸赦拘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)躺同。三九已至,卻和暖如春丸逸,著一層夾襖步出監(jiān)牢的瞬間蹋艺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工黄刚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捎谨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓憔维,卻偏偏與公主長(zhǎng)得像侍芝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子埋同,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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