[英]Beautiful Soup: findall and quoted classes
我是一名新的python用戶,在BS問題上將我的頭撞在牆上。 我的目標頁面包含以下片段:
<div class=rbHeader>
<span role="heading" aria-level="3" class="ws_bold">
Experience Level</span>
</div>
<div class=" row result" id="p_bc0437dce636c6f4" data-jk="bc0437dce636c6f4" itemscope itemtype="http://schema.org/JobPosting" data-tn-component="organicJob">
...
</div>
我將頁面解析如下:
target = Soup(urllib.urlopen(url), "lxml")
如果我跑步
targetElements = target.findAll('div', attrs={'class':'rbheader'})
print targetElements
我懂了
[<div class="rbHeader">\n<span aria-level="3" class="ws_bold" role="heading">\nExperience Level</span>\n</div>]
但是如果我跑步
targetElements = target.findAll('div', attrs={'class':' row result'})
print targetElements
我得到
[]
無論我嘗試選擇哪個類(如果用引號引起來),都是如此。 我似乎只能找到引號之外的類。
任何幫助將不勝感激。
最佳瑞安
總是從所有類中刪除空格。
您只能上一堂課:
targetElements = target.findAll('div', attrs={'class':'row'})
...要么:
targetElements = target.findAll('div', attrs={'class':'result'})
如果您懷疑其中每一個都可能返回太多結果,則可以執行以下操作:
soup.select('div.row.result')
.... soup
在哪里?
這是一個基於您的div
的示例:
div_test='<div class=rbHeader><span role="heading" aria-level="3" class="ws_bold">Experience Level</span></div><div class=" row result" id="p_bc0437dce636c6f4" data-jk="bc0437dce636c6f4" itemscope itemtype="http://schema.org/JobPosting" data-tn-component="organicJob"></div>'
target = bs4.BeautifulSoup(div_test,'html.parser')
1,類名區分大小寫,您的代碼
targetElements = target.findAll('div', attrs={'class':'rbheader'})
print targetElements
一無所獲[]
。
targetElements = target.findAll('div', attrs={'class':'rbHeader'})
print targetElements
會給你:
[<div class="rbHeader"><span aria-level="3" class="ws_bold" role="heading">Experience Level</span></div>]
2,對於代碼:
targetElements = target.findAll('div', attrs={'class':' row result'})
print targetElements
它會給您結果而不是什么:
[<div class=" row result" data-jk="bc0437dce636c6f4" data-tn-component="organicJob" id="p_bc0437dce636c6f4" itemscope="" itemtype="http://schema.org/JobPosting"></div>]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.