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

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

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

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

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

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

先來(lái)看簡(jiǎn)書首頁(yè)的源代碼:

可以發(fā)現(xiàn)簡(jiǎn)書首頁(yè)文章的標(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'的語(yǔ)句
# 打印查找到的每一個(gè)a標(biāo)簽的string
for title in titles:
 print(title.string)

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

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

解析器 使用方法 優(yōu)勢(shì) 劣勢(shì)
Python標(biāo)準(zhǔn)庫(kù) BeautifulSoup(markup, "html.parser") (1)Python的內(nèi)置標(biāo)準(zhǔn)庫(kù)
(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語(yǔ)言庫(kù)
lxml XML 解析器 BeautifulSoup(markup, ["lxml", "xml"]) OR BeautifulSoup(markup, "xml") (1)速度快
(2)唯一支持XML的解析器
需要安裝C語(yǔ)言庫(kù)
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文件與目錄操作技巧匯總

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

您可能感興趣的文章:

相關(guān)文章

  • python實(shí)現(xiàn)zabbix發(fā)送短信腳本

    python實(shí)現(xiàn)zabbix發(fā)送短信腳本

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)zabbix發(fā)送短信腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python sys.stdin和sys.stdout的用法說(shuō)明

    python sys.stdin和sys.stdout的用法說(shuō)明

    這篇文章主要介紹了python sys.stdin和sys.stdout的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-03-03
  • 520必備!這些Python表白代碼祝你脫單成功

    520必備!這些Python表白代碼祝你脫單成功

    不會(huì)還有程序猿沒有女朋友吧?沒關(guān)系,今天特地為大家整理了這些Python花式表白代碼,你就放心大膽的去吧,需要的朋友可以參考下
    2021-05-05
  • 詳談python中冒號(hào)與逗號(hào)的區(qū)別

    詳談python中冒號(hào)與逗號(hào)的區(qū)別

    下面小編就為大家分享一篇詳談python中冒號(hào)與逗號(hào)的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-04-04
  • python爬蟲框架scrapy實(shí)戰(zhàn)之爬取京東商城進(jìn)階篇

    python爬蟲框架scrapy實(shí)戰(zhàn)之爬取京東商城進(jìn)階篇

    這篇文章主要給大家介紹了利用python爬蟲框架scrapy爬取京東商城的相關(guān)資料,文中給出了詳細(xì)的代碼介紹供大家參考學(xué)習(xí),并在文末給出了完整的代碼,需要的朋友們可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-04-04
  • 使用Python的package機(jī)制如何簡(jiǎn)化utils包設(shè)計(jì)詳解

    使用Python的package機(jī)制如何簡(jiǎn)化utils包設(shè)計(jì)詳解

    這篇文章主要給大家介紹了關(guān)于使用Python的package機(jī)制如何簡(jiǎn)化utils包設(shè)計(jì)的相關(guān)資料,文中通過示例代碼的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-12-12
  • scrapy+scrapyd+gerapy?爬蟲調(diào)度框架超詳細(xì)教程

    scrapy+scrapyd+gerapy?爬蟲調(diào)度框架超詳細(xì)教程

    Scrapy吸引人的地方在于它是一個(gè)框架,任何人都可以根據(jù)需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持,這篇文章主要介紹了scrapy+scrapyd+gerapy?爬蟲調(diào)度框架超詳細(xì)教程,需要的朋友可以參考下
    2022-06-06
  • Python機(jī)器學(xué)習(xí)之SVM支持向量機(jī)

    Python機(jī)器學(xué)習(xí)之SVM支持向量機(jī)

    這篇文章主要為大家詳細(xì)介紹了Python機(jī)器學(xué)習(xí)之SVM支持向量機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python基于遞歸實(shí)現(xiàn)電話號(hào)碼映射功能示例

    Python基于遞歸實(shí)現(xiàn)電話號(hào)碼映射功能示例

    這篇文章主要介紹了Python基于遞歸實(shí)現(xiàn)電話號(hào)碼映射功能,結(jié)合實(shí)例形式分析了Python針對(duì)字典的遞歸、遍歷相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python曲線擬合多項(xiàng)式深入詳解

    Python曲線擬合多項(xiàng)式深入詳解

    這篇文章主要給大家介紹了關(guān)于Python使用scipy進(jìn)行曲線擬合的相關(guān)資料,Scipy優(yōu)化和擬合采用的是optimize模塊,該模塊提供了函數(shù)最小值(標(biāo)量或多維)、曲線擬合和尋找等式的根的有用算法,需要的朋友可以參考下
    2022-11-11

最新評(píng)論