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

Python3爬蟲學(xué)習(xí)之爬蟲利器Beautiful Soup用法分析

 更新時(shí)間:2018年12月12日 09:11:50   作者:Veniendeavor  
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之爬蟲利器Beautiful Soup用法,結(jié)合實(shí)例形式分析了Beautiful Soup的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python3爬蟲學(xué)習(xí)之爬蟲利器Beautiful Soup用法。分享給大家供大家參考,具體如下:

爬蟲利器Beautiful Soup

前面一篇說到通過urllib.request模塊可以將網(wǎng)頁當(dāng)作本地文件來讀取,那么獲得網(wǎng)頁的html代碼后,自然就是要將我們所需要的部分從雜亂的html代碼中分離出來。既然要做數(shù)據(jù)的查找和提取,當(dāng)然我們首先想到的應(yīng)該是正則表達(dá)式的方式,而正則表達(dá)式書寫的復(fù)雜我想大家都有體會(huì),而且Python中的正則表達(dá)式和其他語言中的并沒有太大區(qū)別,也就不贅述了,所以現(xiàn)在介紹Python中一種比較友好且易用的數(shù)據(jù)提取方式——Beautiful Soup

照例,先上官方文檔
還有貼心的中文版

Beautiful Soup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫.它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.

文檔中的例子其實(shí)說的已經(jīng)比較清楚了,那下面就以爬取簡書首頁文章的標(biāo)題一段代碼來演示一下:

先來看簡書首頁的源代碼:

可以發(fā)現(xiàn)簡書首頁文章的標(biāo)題都是在<a/>標(biāo)簽中,并且class='title',所以,通過

find_all('a', 'title') 

便可獲得所有的文章標(biāo)題,具體實(shí)現(xiàn)代碼及結(jié)果如下:

# -*- coding:utf-8 -*-
from urllib import request
from bs4 import BeautifulSoup
url = r'http://www.jianshu.com'
# 模擬真實(shí)瀏覽器進(jìn)行訪問
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read()
page_info = page_info.decode('utf-8')
# 將獲取到的內(nèi)容轉(zhuǎn)換成BeautifulSoup格式,并將html.parser作為解析器
soup = BeautifulSoup(page_info, 'html.parser') 
# 以格式化的形式打印html
# print(soup.prettify())
titles = soup.find_all('a', 'title') # 查找所有a標(biāo)簽中class='title'的語句
# 打印查找到的每一個(gè)a標(biāo)簽的string
for title in titles:
 print(title.string)

PS:關(guān)于解析器

Beautiful Soup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,還支持一些第三方的解析器,下表列出了主要的解析器,以及它們的優(yōu)缺點(diǎn):

解析器 使用方法 優(yōu)勢 劣勢
Python標(biāo)準(zhǔn)庫 BeautifulSoup(markup, "html.parser") (1)Python的內(nèi)置標(biāo)準(zhǔn)庫
(2)執(zhí)行速度適中
(3)文檔容錯(cuò)能力強(qiáng)
Python 2.7.3 or 3.2.2)前 的版本中文檔容錯(cuò)能力差
lxml HTML 解析器 BeautifulSoup(markup, "lxml") (1)速度快
(2)文檔容錯(cuò)能力強(qiáng)
需要安裝C語言庫
lxml XML 解析器 BeautifulSoup(markup, ["lxml", "xml"]) OR BeautifulSoup(markup, "xml") (1)速度快
(2)唯一支持XML的解析器
需要安裝C語言庫
html5lib BeautifulSoup(markup, "html5lib") (1)最好的容錯(cuò)性
(2)以瀏覽器的方式解析文檔
(3)生成HTML5格式的文檔
(1)速度慢
(2)不依賴外部擴(kuò)展

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)

    用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn)

    這篇文章主要介紹了用Python自動(dòng)清理系統(tǒng)垃圾的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python判斷鏈表是否有環(huán)的實(shí)例代碼

    python判斷鏈表是否有環(huán)的實(shí)例代碼

    在本篇文章里小編給大家整理的是關(guān)于python判斷鏈表是否有環(huán)的知識(shí)點(diǎn)及實(shí)例代碼,需要的朋友們參考下。
    2020-01-01
  • python使用百度翻譯進(jìn)行中翻英示例

    python使用百度翻譯進(jìn)行中翻英示例

    這篇文章主要介紹了python使用百度翻譯進(jìn)行中翻英示例,需要的朋友可以參考下
    2014-04-04
  • pycharm中選中一個(gè)單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法

    pycharm中選中一個(gè)單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法

    這篇文章主要介紹了pycharm中選中一個(gè)單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法,類似于sublime 里的ctrl+D功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-11-11
  • 最新tensorflow與pytorch環(huán)境搭建的實(shí)現(xiàn)步驟

    最新tensorflow與pytorch環(huán)境搭建的實(shí)現(xiàn)步驟

    深度學(xué)習(xí)相關(guān)的熱門框架主要為Tensorflow和Pytorch,本文主要介紹了搭建最新tensorflow與pytorch環(huán)境,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Python 面向?qū)ο笾庋b、繼承、多態(tài)操作實(shí)例分析

    Python 面向?qū)ο笾庋b、繼承、多態(tài)操作實(shí)例分析

    這篇文章主要介紹了Python 面向?qū)ο笾庋b、繼承、多態(tài)操作,結(jié)合實(shí)例形式分析了Python面相對象程序設(shè)計(jì)中封裝、繼承、多態(tài)相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • python 檢查文件mime類型的方法

    python 檢查文件mime類型的方法

    今天小編就為大家分享一篇python 檢查文件mime類型的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 如何基于Python批量下載音樂

    如何基于Python批量下載音樂

    這篇文章主要介紹了如何基于Python批量下載音樂,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python下的常用下載安裝工具pip的安裝方法

    Python下的常用下載安裝工具pip的安裝方法

    這篇文章主要介紹了Python下的常用下載安裝工具pip的安裝方法,注意在Python2.7.9和3.4以上默認(rèn)已經(jīng)集成了pip,需要的朋友可以參考下
    2015-11-11
  • Python操作系統(tǒng)的6個(gè)自動(dòng)化腳本小結(jié)

    Python操作系統(tǒng)的6個(gè)自動(dòng)化腳本小結(jié)

    在Python中,實(shí)現(xiàn)操作系統(tǒng)自動(dòng)化的腳本可以涵蓋從文件操作、系統(tǒng)監(jiān)控到網(wǎng)絡(luò)任務(wù)等多種功能,下面我將詳細(xì)介紹六個(gè)不同類別的Python自動(dòng)化腳本示例,這些示例將幫助你理解如何用Python來自動(dòng)化日常操作系統(tǒng)任務(wù),需要的朋友可以參考下
    2024-10-10

最新評論

宁明县| 惠水县| 象州县| 承德县| 内丘县| 贵溪市| 石门县| 淮安市| 交口县| 大关县| 湘西| 九龙城区| 当阳市| 延长县| 唐海县| 银川市| 满洲里市| 桂阳县| 开封市| 黄山市| 安阳县| 鞍山市| 托克逊县| 敖汉旗| 伊吾县| 龙山县| 郧西县| 安阳县| 崇文区| 阳高县| 象州县| 托克托县| 张掖市| 禹城市| 荣昌县| 佛冈县| 唐河县| 博乐市| 安溪县| 景洪市| 穆棱市|