最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小眾實用的Python 爬蟲庫RoboBrowser

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

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 進(jìn)行網(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() 方法進(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() 方法查詢出每一項的標(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 等

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

相關(guān)文章

  • Python中的閉包

    Python中的閉包

    這篇文章主要介紹了Python中的閉包,閉包在函數(shù)中提出的概念,簡單來說就是一個函數(shù)定義中引用了函數(shù)外定義的變量,并且該函數(shù)可以在其定義環(huán)境外被執(zhí)行。這樣的一個函數(shù)我們稱之為閉包,下面我們一起來看看文章內(nèi)容的具體介紹
    2021-11-11
  • Python中GIL全局解釋鎖的實現(xiàn)

    Python中GIL全局解釋鎖的實現(xiàn)

    本文主要介紹了Python中GIL全局解釋鎖的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Pytorch對Himmelblau函數(shù)的優(yōu)化詳解

    Pytorch對Himmelblau函數(shù)的優(yōu)化詳解

    今天小編就為大家分享一篇Pytorch對Himmelblau函數(shù)的優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別

    詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別

    下面小編就為大家分享一篇詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python 可迭代對象 iterable的具體使用

    Python 可迭代對象 iterable的具體使用

    本文主要介紹了Python可迭代對象iterable,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python實現(xiàn)的多叉樹尋找最短路徑算法示例

    Python實現(xiàn)的多叉樹尋找最短路徑算法示例

    這篇文章主要介紹了Python實現(xiàn)的多叉樹尋找最短路徑算法,結(jié)合實例形式分析了Python使用深度優(yōu)先查找獲取多叉樹最短路徑相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • python中引用與復(fù)制用法實例分析

    python中引用與復(fù)制用法實例分析

    這篇文章主要介紹了python中引用與復(fù)制用法,以實例形式詳細(xì)分析了python中引用與復(fù)制的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • python計算機(jī)視覺opencv矩形輪廓頂點位置確定

    python計算機(jī)視覺opencv矩形輪廓頂點位置確定

    這篇文章主要為大家介紹了python計算機(jī)視覺opencv矩形輪廓頂點位置確定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python入門學(xué)習(xí)指南分享

    Python入門學(xué)習(xí)指南分享

    這篇文章主要為大家詳細(xì)介紹了Python入門的學(xué)習(xí)指南,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python?pandas.replace的用法詳解

    Python?pandas.replace的用法詳解

    在處理數(shù)據(jù)的時候,很多時候會遇到批量替換的情況,如果一個一個去修改效率過低,也容易出錯,replace()是很好的方法,下面這篇文章主要給大家介紹了關(guān)于Python?pandas.replace用法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評論

屏山县| 固镇县| 凤凰县| 石景山区| 东乡县| 交城县| 通许县| 潮安县| 二连浩特市| 县级市| 武夷山市| 梅河口市| 沅江市| 吉木萨尔县| 炎陵县| 云龙县| 永州市| 富平县| 大邑县| 长海县| 襄城县| 大新县| 马关县| 榕江县| 千阳县| 格尔木市| 商河县| 洪泽县| 新平| 临洮县| 南宫市| 兴安盟| 龙陵县| 桃园县| 普兰县| 卫辉市| 扶余县| 石嘴山市| 昭觉县| 前郭尔| 广饶县|