我想废弃的html部分如下:
<ul . . .> #has some attributes represented by dots
<li . . .>
<div class="c1">
<h4 class="c2">T1</h4>
<h5 class="c3">T2</h5>
<p class="c4">T3</p>
<p class="c5">T4</p>
</div>
</li>
<li . . .>
<div class="c1">
<h4 class="c2">T1</h4>
<h5 class="c3">T2</h5>
<p class="c4">T3</p>
<p class="c5">T4</p>
</div>
</li>
<li> . . .</li>
. . .
. . .
. . . # dots show repetition
</ul>
现在我想从h4
、h5
、p
、p
类div
、c1
的li
列表中获取文本。我使用selenium解决了这个问题,如下所示:
pare = driver.find_elements_by_xpath("//div[@class='c1']")
for par in pare:
title = par.find_element_by_xpath("./h4[@class='c2']")
manu = par.find_element_by_xpath("./h5[@class='c3']")
desc = par.find_element_by_xpath("./p[@class='c4']")
tit.append(title.text)
man.append(manu.text)
des.append(desc.text)
现在在beautifulsoup中,我使用了以下代码,但它无法打印空列表:
titles = soup.find_all("h4","WideSidebarProductList-item-title")
manufacturers = soup.find_all("h5","WideSidebarProductList-item-manufacturer")
descriptions = soup.find_all("p","WideSidebarProductList-item-description")
prices = soup.find_all("p","WideSidebarProductList-item-price")
for i,t in enumerate(titles):
tit.append(t.get_text(strip=True))
man.append(manufacturers[i].get_text(strip=True))
des.append(descriptions[i].get_text(strip=True))
pri.append(prices[i].get_text(strip=True))
列表打印为空。请帮我解决这个问题,因为我是新来的。你知道吗
您可以尝试:
相关问题 更多 >
编程相关推荐