【发布时间】:2017-11-04 02:45:08
【问题描述】:
我正在准备从以下 HTML 脚本中废弃“product-tech-section-row”类下的嵌套 div 实例:
<h2 class="product-tech-section-title">
Présentation de la TV SAMSUNG UE49MU9005</h2>
<div class="product-tech-section-row">
<div>
Désignation</b> :
</div>
<div>
<b>SAMSUNG UE49MU9005</b> (UE 49MU9005 TXXC)<br><br>Plus d'informations sur les <a href="http://www.lcd-compare.com/info-tv-led-samsung.htm" title="TV Samsung : informations et statistiques">TV LED Samsung</a><br><a href="http://www.lcd-compare.com/tv-liste-122.htm?tv_label=7,8" title="Liste des TV 4K">Voir les TV 4K (Ultra HD ou Quad HD)</a></div>
</div>
<div class="product-tech-section-row">
<div>
Date de sortie (approx.)</b> :
</div>
<div>
Mars 2017</div>
</div>
但是,使用 find_all() 只会提取第一个 div 子项(仅 Désignation、SAMSUNG UE... 不会出现),如下面的代码所示。我错过了什么吗?非常感谢您的帮助。
from urllib.request import urlopen as uReq
from urllib.request import Request
from bs4 import BeautifulSoup as soup
#Allowing access to the website (personal use)
prod_url="http://www.lcd-compare.com/televiseur-SAMUE49MU9005-SAMSUNG-UE49MU9005.htm"
hdr = {'User-Agent': 'Mozilla/5.0'}
req = Request(prod_url,headers=hdr)
prod_html=uReq(req)
#Parsing the technical details
tec_list = prod_soup.find_all("div",{"class","product-tech-section-row"})
---------------------------------------------------------------------------------------
#However, this is what I am getting:
>>>print(tec_list[0])
<div class="product-tech-section-row">
<div>
Désignation</div></div>
>>>print(tec_list[0].findChildren())
[<div>
Désignation<\div>]
【问题讨论】:
-
尝试 print(tec_list[1]) 这将为您提供“SAMSUNG UE49MU9005”结果。请记住,find_all() 返回一个被删除的元素列表,该列表存储在 tec_list 中。
-
感谢您的回复,很遗憾 print(tec_list[1]) 只会返回“Date de sortie (approx.)”,也就是下面的“product-tech-section-row”类跨度>
-
嗨 p404 请在下面查看我的答案。
标签: python html web-scraping beautifulsoup findall