【发布时间】:2016-06-16 21:01:17
【问题描述】:
我正在尝试从<span class= ''> 中获取信息。我正在抓取的页面上的代码如下所示:
< span class = "catnum"> Disc Number < / span>
"1"
< br >
< span class = "catnum"> Track Number < / span>
"1"
< br>
< span class = "catnum" > Duration < /span>
"5:28"
<br>
我需要得到的是</span> 标记之后的那些数字。我还应该提到我正在编写一段更大的代码,它正在抓取 1200 个站点,这将不得不循环超过 1200 个站点,其中引号中的数字会因页面而异。
我尝试将此代码作为一页上的测试:
from bs4 import BeautifulSoup
soup = BeautifulSoup (open("Smith.html"), "html.parser")
for tag in soup.findAll('span'):
if tag.has_key('class'):
if tag['class'] == 'catnum':
print tag.string
我知道这将打印所有的“跨度类”标签,而不仅仅是我想要的三个标签,但我想我仍然会测试它是否有效,但我收到了这个错误:
/Library/Python/2.7/site-packages/bs4/element.py:1527:用户警告: has_key 已弃用。请改用 has_attr("class")。键))
【问题讨论】:
-
[span.next_sibling.strip() for span in soup.select("span.catnum")]
标签: python html web-scraping beautifulsoup