推薦一款小眾且好用的 Python 爬蟲庫 - RoboBrowser

1. 前言

大家好,我是安果含滴!

今天推薦一款小眾輕量級的爬蟲庫:RoboBrowser

RoboBrowser,Your friendly neighborhood web scraper丐巫!由純 Python 編寫谈况,運行無需獨立的瀏覽器,它不僅可以做爬蟲递胧,還可以實現(xiàn) Web 端的自動化

項目地址:

https://github.com/jmcarp/robobrowser

2. 安裝及用法

在實戰(zhàn)之前碑韵,我們先安裝依賴庫及解析器

PS:官方推薦的解析器是 「lxml」

# 安裝依賴
pip3 install robobrowser

# lxml解析器(官方推薦)
pip3 install lxml

RoboBrowser 常見的 2 個功能為:

  • 模擬表單 Form 提交

  • 網(wǎng)頁數(shù)據(jù)爬取

使用 RoboBrowser 進行網(wǎng)頁數(shù)據(jù)爬取,常見的 3 個方法如下:

  • find

    查詢當(dāng)前頁面滿足條件的第一個元素

  • find_all

    查詢當(dāng)前頁面擁有共同屬性的一個列表元素

  • select

    通過 CSS 選擇器缎脾,查詢頁面泼诱,返回一個元素列表

需要指出的是,RoboBrowser 依賴于 BS4赊锚,所以它的使用方法和 BS4 類似

更多功能可以參考:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

3. 實戰(zhàn)一下

我們以「 百度搜索及爬取搜索結(jié)果列表 」為例

3-1 打開目標(biāo)網(wǎng)站

首先治筒,我們實例化一個 RoboBrowser 對象

from time import sleep

from robobrowser import RoboBrowser

home_url = 'https://baidu.com'

#  parser: 解析器,HTML parser; used by BeautifulSoup
#  官方推薦:lxml
rb = RoboBrowser(history=True, parser='lxml')

# 打開目標(biāo)網(wǎng)站
rb.open(home_url)

然后舷蒲,使用 RoboBrowser 實例對象中的 open() 方法打開目標(biāo)網(wǎng)站

3-2 自動化表單提交

首先耸袜,使用 RoboBrowser 實例對象獲取網(wǎng)頁中的表單 Form

然后,通過為表單中的輸入框賦值模擬輸入操作

最后牲平,使用 submit_form() 方法進行表單提交堤框,模擬一次搜索操作

# 獲取表單對象
bd_form = rb.get_form()

print(bd_form)

bd_form['wd'].value = "AirPython"

# 提交表單,模擬一次搜索
rb.submit_form(bd_form)

3-3 數(shù)據(jù)爬取

分析搜索頁面的網(wǎng)頁結(jié)構(gòu)纵柿,利用 RoboBrowser 中的 select() 方法匹配出所有的搜索列表元素

遍歷搜索列表元素蜈抓,使用 find() 方法查詢出每一項的標(biāo)題及 href 鏈接地址

# 查看結(jié)果
result_elements = rb.select(".result")

# 搜索結(jié)果
search_result = []

# 第一項的鏈接地址
first_href = ''

for index, element in enumerate(result_elements):
    title = element.find("a").text
    href = element.find("a")['href']
    search_result.append(title)

    if index == 0:
        first_href = element.find("a")
        print('第一項地址為:', href)

print(search_result)

最后,使用 RoboBrowser 中的 follow_link() 方法模擬一下「點擊鏈接昂儒,查看網(wǎng)頁詳情」的操作

# 跳轉(zhuǎn)到第一個鏈接
rb.follow_link(first_href)

# 獲取歷史
print(rb.url)

需要注意的是沟使,follow_link() 方法的參數(shù)為帶有 href 值的 a 標(biāo)簽

4. 最后

文中結(jié)合百度搜索實例,使用 RoboBrowser 完成了一次自動化及爬蟲操作

相比 Selenium渊跋、Helium 等腊嗡,RoboBrowser 更輕量級着倾,不依賴獨立的瀏覽器及驅(qū)動

如果想處理一些簡單的爬蟲或 Web 自動化,RoboBrowser 完全夠用燕少;但是面對一些復(fù)雜的自動化場景卡者,更建議使用 Selenium、Pyppeteer客们、Helium 等

我已經(jīng)將文中完整源碼文件傳到后臺崇决,關(guān)注公眾號「 AirPython 」,后臺回復(fù)「 rb 」即可獲得

如果你覺得文章還不錯底挫,請大家 點贊恒傻、分享、留言 下凄敢,因為這將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強動力碌冶!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末湿痢,一起剝皮案震驚了整個濱河市涝缝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌譬重,老刑警劉巖拒逮,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異臀规,居然都是意外死亡滩援,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門塔嬉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玩徊,“玉大人,你說我怎么就攤上這事谨究《鞲ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵胶哲,是天一觀的道長畔塔。 經(jīng)常有香客問我,道長鸯屿,這世上最難降的妖魔是什么澈吨? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮寄摆,結(jié)果婚禮上谅辣,老公的妹妹穿的比我還像新娘。我一直安慰自己婶恼,他們只是感情好屈藐,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布榔组。 她就那樣靜靜地躺著,像睡著了一般联逻。 火紅的嫁衣襯著肌膚如雪搓扯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天包归,我揣著相機與錄音锨推,去河邊找鬼。 笑死公壤,一個胖子當(dāng)著我的面吹牛换可,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厦幅,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼沾鳄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了确憨?” 一聲冷哼從身側(cè)響起译荞,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎休弃,沒想到半個月后吞歼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡塔猾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年篙骡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丈甸。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糯俗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睦擂,到底是詐尸還是另有隱情得湘,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布祈匙,位于F島的核電站忽刽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏夺欲。R本人自食惡果不足惜跪帝,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望些阅。 院中可真熱鬧伞剑,春花似錦、人聲如沸市埋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抒倚,卻和暖如春褐着,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背托呕。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工含蓉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人项郊。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓馅扣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親着降。 傳聞我的和親對象是個殘疾皇子差油,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353