主頁 > 知識(shí)庫 > 小眾實(shí)用的Python 爬蟲庫RoboBrowser

小眾實(shí)用的Python 爬蟲庫RoboBrowser

熱門標(biāo)簽:Win7旗艦版 電話運(yùn)營(yíng)中心 硅谷的囚徒呼叫中心 客戶服務(wù) 企業(yè)做大做強(qiáng) 語音系統(tǒng) 百度AI接口 呼叫中心市場(chǎng)需求

1. 前言

大家好,我是安果!

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

RoboBrowser,Your friendly neighborhood web scraper!由純 Python 編寫,運(yùn)行無需獨(dú)立的瀏覽器,它不僅可以做爬蟲,還可以實(shí)現(xiàn) Web 端的自動(dòng)化

項(xiàng)目地址:

​https://github.com/jmcarp/robobrowser

2. 安裝及用法

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

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

# 安裝依賴
pip3 install robobrowser

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

RoboBrowser 常見的 2 個(gè)功能為:

  • 模擬表單 Form 提交
  • 網(wǎng)頁數(shù)據(jù)爬取

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

  • find

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

  • find_all

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

  • select

通過 CSS 選擇器,查詢頁面,返回一個(gè)元素列表

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

更多功能可以參考:

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

3. 實(shí)戰(zhàn)一下

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

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

首先,我們實(shí)例化一個(gè) RoboBrowser 對(duì)象

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 實(shí)例對(duì)象中的 open() 方法打開目標(biāo)網(wǎng)站

3-2  自動(dòng)化表單提交

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

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

最后,使用 submit_form() 方法進(jìn)行表單提交,模擬一次搜索操作

# 獲取表單對(duì)象
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() 方法查詢出每一項(xiàng)的標(biāo)題及 href 鏈接地址

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

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

# 第一項(xiàng)的鏈接地址
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('第一項(xiàng)地址為:', href)

print(search_result)

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

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

# 獲取歷史
print(rb.url)

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

4. 最后

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

相比 Selenium、Helium 等,RoboBrowser 更輕量級(jí),不依賴獨(dú)立的瀏覽器及驅(qū)動(dòng)

如果想處理一些簡(jiǎn)單的爬蟲或 Web 自動(dòng)化,RoboBrowser 完全夠用;但是面對(duì)一些復(fù)雜的自動(dòng)化場(chǎng)景,更建議使用 Selenium、Pyppeteer、Helium 等

以上就是Python 爬蟲庫RoboBrowser的使用簡(jiǎn)介的詳細(xì)內(nèi)容,更多關(guān)于Python 爬蟲庫RoboBrowser的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python基于httpx模塊實(shí)現(xiàn)發(fā)送請(qǐng)求
  • Python爬蟲爬取愛奇藝電影片庫首頁的實(shí)例代碼
  • Python爬蟲之必備chardet庫
  • Python爬蟲進(jìn)階之Beautiful Soup庫詳解
  • Python爬蟲之爬取某文庫文檔數(shù)據(jù)
  • Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟
  • 詳解Python之Scrapy爬蟲教程N(yùn)BA球員數(shù)據(jù)存放到Mysql數(shù)據(jù)庫
  • python爬蟲利器之requests庫的用法(超全面的爬取網(wǎng)頁案例)
  • python爬蟲開發(fā)之使用Python爬蟲庫requests多線程抓取貓眼電影TOP100實(shí)例
  • python爬蟲開發(fā)之使用python爬蟲庫requests,urllib與今日頭條搜索功能爬取搜索內(nèi)容實(shí)例
  • python爬蟲請(qǐng)求庫httpx和parsel解析庫的使用測(cè)評(píng)

標(biāo)簽:長(zhǎng)沙 山西 喀什 安康 崇左 山西 濟(jì)南 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《小眾實(shí)用的Python 爬蟲庫RoboBrowser》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266