欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年03月12日 14:22:26   作者:AirPython  
這篇文章主要介紹了Python 爬蟲庫RoboBrowser的使用簡介,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

1. 前言

大家好,我是安果!

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

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

項(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 對象

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

3-2  自動化表單提交

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

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

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

# 獲取表單對象
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 完成了一次自動化及爬蟲操作

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

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

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

相關(guān)文章

  • 在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程

    在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程

    這篇文章主要介紹了在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • pycharm 使用心得(四)顯示行號

    pycharm 使用心得(四)顯示行號

    這篇文章主要介紹了pycharm顯示行號的方法,需要的朋友可以參考下
    2014-06-06
  • Python?輕松實(shí)現(xiàn)可視化大屏

    Python?輕松實(shí)現(xiàn)可視化大屏

    對于從事數(shù)據(jù)領(lǐng)域的小伙伴來說,當(dāng)需要闡述自己觀點(diǎn)、展示項(xiàng)目成果時(shí),我們需要在最短時(shí)間內(nèi)讓別人知道你的想法。我相信單調(diào)乏味的語言很難讓別人快速理解。最直接有效的方式就是將數(shù)據(jù)進(jìn)行可視化展現(xiàn)
    2022-01-01
  • Pycharm中flask開啟debug模式的詳細(xì)流程

    Pycharm中flask開啟debug模式的詳細(xì)流程

    PyCharm是一個(gè)強(qiáng)大的集成開發(fā)環(huán)境(IDE),非常適合Python開發(fā)者,包括Flask框架,當(dāng)你在使用Flask開發(fā)Web應(yīng)用時(shí),Debug功能是非常重要的,它允許你在運(yùn)行時(shí)檢查程序的狀態(tài)、調(diào)試代碼錯(cuò)誤,本文將介紹Pycharm中flask開啟debug模式的詳細(xì)流程,需要的朋友可以參考下
    2024-08-08
  • 使用python提取PowerPoint幻燈片中表格并保存到文本及Excel文件

    使用python提取PowerPoint幻燈片中表格并保存到文本及Excel文件

    owerPoint作為廣泛使用的演示工具,常被用于展示各類數(shù)據(jù)報(bào)告和分析結(jié)果,其中,表格以其直觀性和結(jié)構(gòu)性成為闡述數(shù)據(jù)關(guān)系的不二之選,本文將介紹如何使用Python來提取PowerPoint幻燈片中的表格,并將表格數(shù)據(jù)寫入文本文件以及Excel文件,需要的朋友可以參考下
    2024-06-06
  • Python實(shí)現(xiàn)視頻中添加音頻工具詳解

    Python實(shí)現(xiàn)視頻中添加音頻工具詳解

    本文主要為大家介紹了Python中提供在無音頻的視頻中添加音頻的工具詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下
    2021-12-12
  • 解決jupyter notebook 前面書寫后面內(nèi)容消失的問題

    解決jupyter notebook 前面書寫后面內(nèi)容消失的問題

    這篇文章主要介紹了解決jupyter notebook 前面書寫后面內(nèi)容消失的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • tkinter高級布局之PanedWindow和notebook詳解

    tkinter高級布局之PanedWindow和notebook詳解

    本文主要介紹了tkinter中的兩種布局控件,分別是可以動態(tài)劃分子控件的PanedWindow,和提供了選項(xiàng)卡工具的notebook,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-08-08
  • Pandas?計(jì)算相關(guān)性系數(shù)corr()方式

    Pandas?計(jì)算相關(guān)性系數(shù)corr()方式

    這篇文章主要介紹了Pandas?計(jì)算相關(guān)性系數(shù)corr()方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python+微信接口實(shí)現(xiàn)運(yùn)維報(bào)警

    Python+微信接口實(shí)現(xiàn)運(yùn)維報(bào)警

    這篇文章主要介紹了Python+微信接口實(shí)現(xiàn)運(yùn)維報(bào)警的相關(guān)資料,需要的朋友可以參考下
    2016-08-08

最新評論