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

BeautifulSoup獲取指定class樣式的div的實(shí)現(xiàn)

 更新時(shí)間:2020年12月07日 10:58:33   作者:morein2008  
這篇文章主要介紹了BeautifulSoup獲取指定class樣式的div的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

如何獲取指定的標(biāo)簽的內(nèi)容是解析網(wǎng)頁(yè)爬取數(shù)據(jù)的必要手段,比如想獲取<div class='xxx'> ...<div>這樣的div標(biāo)簽,通常有三種辦法,

1)用字符串查找方法,然后切分字符串(或切片操作),如str.index(patternStr)或str.find(patternStr),這種方法快,但步驟多,因?yàn)橐ヮ^去尾。

2)用正則表達(dá)式,比如'<div class="result_info">([\s\S]+?)</div>',通過正則表達(dá)式的括號(hào),可以獲取匹配的內(nèi)容,即<div ..></div>之間的內(nèi)容:

import re

def getTags(html):
 reg = r'<div class="result_info">([\s\S]+?)</div>'
 pattern= re.compile(reg)
 tags= re.findall(pattern, html)
 return tags


不過正則表達(dá)式仍有缺點(diǎn),例如'<div class="result_info">([\s\S]+?)</div>'括號(hào)中的問號(hào)表示非貪婪匹配,正常情況下可以匹配到所需要的內(nèi)容,但如果class="result_info"的div中還嵌套了子的div,那么正則表達(dá)式的后半部分"</div>"將會(huì)匹配子div的結(jié)尾部分</div>,而不是希望的父div.

假如有這樣一個(gè)html:

 <div class="result_info">
  <p>some paragraph test 1
  </p>
  <p>some paragraph test 2
  </p>
  <div id="div_sub" class="sub_div_style">
  some contents in sub div
  </div>
  backend content here
 </div>

那么backend contents here這段內(nèi)容將會(huì)匹配不到,正則表達(dá)式將會(huì)將id為div_sub的</div>作為結(jié)尾。

3)使用第三方庫(kù),比如BeautifulSoup,優(yōu)點(diǎn)是準(zhǔn)確,缺點(diǎn)是速度會(huì)比字符串切分、正則表達(dá)式慢,下面說說BeautifulSoup的用法。

按照BeautifulSoup官方文檔的說明怎么都不能成功,后來(lái)在百度知道(http://zhidao.baidu.com/question/433247968620775644.html)找到答案,真是扯淡,附上有效代碼:

soup=BeautifulSoup(html)
print soup.find_all(name='div',attrs={"class":"footer"})#按照字典的形式給attrs參數(shù)賦值

完整的:

from bs4 import BeautifulSoup
import urllib2

def getTargetDiv(url,myAttrs):
 html=urllib2.urlopen(url).read()
 soup=BeautifulSoup(html)
 return soup.find_all(name='div',attrs=myAttrs)

if __name__=="__main__":
 url=r'http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/'
 myAttrs={'class':'footer'}
 print getTargetDiv(url, myAttrs)

按照官方文檔(http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/)的做法:

#1.soup.find_all("a", class_="sister")
#2.css_soup.find_all("p", class_="body")
#3.soup.find_all(href=re.compile("elsie"))

改成

soup.find_all(name='div',class_=re.compile('info_item'))

或者

soup.find_all('div',class_='info_item')

都沒有匹配結(jié)果,經(jīng)測(cè)試需要soup.find_all(name='div',attrs={"class":"footer"})這樣以字典的形式給attrs參數(shù)賦值才可以。

另一個(gè)例子,獲取指定樣式的div內(nèi)的所有圖片url,并下載保存:

urls=[]
for img in soup.find('div',attrs={'class':'wrap'}).find_all('img'):#找到class="wrap"的div里面的所有<img>標(biāo)簽
 urls.append(img.attrs['src'])#獲取img標(biāo)簽的src屬性,即圖片網(wǎng)址

i=0
savedir=r'C:\Users\hp\Desktop\Images'#路徑中不能包含中文
for url in urls:
 urllib.urlretrieve(url, '%s\%s.jpg'%(savedir,i))
 i+=1
print 'Done'

更多用法,可參考:http://m.fzitv.net/article/184386.htm

到此這篇關(guān)于BeautifulSoup獲取指定class樣式的div的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)BeautifulSoup獲取class樣式的div內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python如何獲取文件指定行的內(nèi)容

    Python如何獲取文件指定行的內(nèi)容

    在本篇文章里小編給大家分享的是關(guān)于Python獲取文件指定行的內(nèi)容的方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • 詳解django中視圖函數(shù)的FBV和CBV

    詳解django中視圖函數(shù)的FBV和CBV

    FBV是指視圖函數(shù)以普通函數(shù)的形式,CBV是指視圖函數(shù)以類的方式,這篇文章主要介紹了django中視圖函數(shù)的FBV和CBV,需要的朋友可以參考下
    2022-08-08
  • Pytorch Tensor基本數(shù)學(xué)運(yùn)算詳解

    Pytorch Tensor基本數(shù)學(xué)運(yùn)算詳解

    今天小編就為大家分享一篇Pytorch Tensor基本數(shù)學(xué)運(yùn)算詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-12-12
  • python issubclass 和 isinstance函數(shù)

    python issubclass 和 isinstance函數(shù)

    這篇文章主要介紹了python issubclass 和 isinstance函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Python tkinter制作單機(jī)五子棋游戲

    Python tkinter制作單機(jī)五子棋游戲

    這篇文章主要介紹了Python tkinter制作單機(jī)五子棋游戲,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python面向?qū)ο缶幊讨畢^(qū)間的插入詳解

    Python面向?qū)ο缶幊讨畢^(qū)間的插入詳解

    這篇文章主要為大家詳細(xì)介紹了Python面向?qū)ο缶幊虒?shí)例教程中的區(qū)間的插入,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-08-08
  • Python使用Turtle模塊繪制五星紅旗代碼示例

    Python使用Turtle模塊繪制五星紅旗代碼示例

    這篇文章主要介紹了Python使用Turtle模塊繪制五星紅旗代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python+OpenCV實(shí)戰(zhàn)之拖拽虛擬方塊的實(shí)現(xiàn)

    Python+OpenCV實(shí)戰(zhàn)之拖拽虛擬方塊的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Python+OpenCV實(shí)現(xiàn)拖拽虛擬方塊的效果,即根據(jù)手指坐標(biāo)位置和矩形的坐標(biāo)位置,判斷手指點(diǎn)是否在矩形上,如果在則矩形跟隨手指移動(dòng),感興趣的可以了解一下
    2022-08-08
  • python數(shù)據(jù)分析之線性回歸選擇基金

    python數(shù)據(jù)分析之線性回歸選擇基金

    這篇文章主要介紹了python數(shù)據(jù)分析之線性回歸選擇基金,文章基于前幾篇的文章內(nèi)容展開詳細(xì)的基金的趨勢(shì)分析,感興趣的小伙伴可以參考一下
    2022-05-05
  • Python selenium自動(dòng)化測(cè)試模型圖解

    Python selenium自動(dòng)化測(cè)試模型圖解

    這篇文章主要介紹了Python selenium自動(dòng)化測(cè)試模型圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論

临城县| 云和县| 清水河县| 黔南| 浏阳市| 苗栗县| 得荣县| 松潘县| 平江县| 当阳市| 西丰县| 饶河县| 鄯善县| 平武县| 永泰县| 通化县| 西盟| 黑山县| 杭锦后旗| 玛纳斯县| 咸丰县| 平山县| 松潘县| 舞阳县| 利津县| 东宁县| 泸西县| 邓州市| 北京市| 阿拉善右旗| 彩票| 淳安县| 通州市| 黄梅县| 营山县| 靖远县| 缙云县| 福州市| 启东市| 晋城| 涡阳县|