如何从属于相同标签和相同 class 的标签中抓取数据? BeautifulSoup
How do I scrape data from a tag belonging to the same label and the same class? BeautifulSoup
我有一个具有相同标签和相同名称的标签(属性)。
这是我的代码
first_movie.find('p',{'class' : 'sort-num_votes-visible'})
这是我的输出
<p class="sort-num_votes-visible">
<span class="text-muted">Votes:</span>
<span data-value="978272" name="nv">978,272</span>
<span class="ghost">|</span> <span class="text-muted">Gross:</span>
<span data-value="858,373,000" name="nv">8.37M</span>
</p>
我正在使用 span 标记此代码;
first_movie.find('span', {'name':'nv',"data-value": True})
978272 --> 输出
但我想用命名为 nv ($858.37M) 达到另一个值。
我的代码只得到这个值 (978,272) 因为标签名称彼此相等 (name = nv)
如果您达到 p 标签中的所有跨度,您可以像使用列表一样使用它们并使用索引达到最后一个 div。
movies = soup.find('p',{'class' : 'sort-num_votes-visible'})
my_movie = movies.findAll('span')
my_span = my_movie[3].text
你很接近。
尝试使用 find_all
然后抓取最后一个元素。
例如:
from bs4 import BeautifulSoup
html_sample = '''
<p class="sort-num_votes-visible">
<span class="text-muted">Votes:</span>
<span data-value="978272" name="nv">978,272</span>
<span class="ghost">|</span> <span class="text-muted">Gross:</span>
<span data-value="858,373,000" name="nv">8.37M</span>
</p>
'''
soup = (
BeautifulSoup(html_sample, "lxml")
.find_all("span", {'name':'nv',"data-value": True})
)
print(soup[-1].getText())
输出:
8.37M
我有一个具有相同标签和相同名称的标签(属性)。 这是我的代码
first_movie.find('p',{'class' : 'sort-num_votes-visible'})
这是我的输出
<p class="sort-num_votes-visible">
<span class="text-muted">Votes:</span>
<span data-value="978272" name="nv">978,272</span>
<span class="ghost">|</span> <span class="text-muted">Gross:</span>
<span data-value="858,373,000" name="nv">8.37M</span>
</p>
我正在使用 span 标记此代码;
first_movie.find('span', {'name':'nv',"data-value": True})
978272 --> 输出
但我想用命名为 nv ($858.37M) 达到另一个值。 我的代码只得到这个值 (978,272) 因为标签名称彼此相等 (name = nv)
如果您达到 p 标签中的所有跨度,您可以像使用列表一样使用它们并使用索引达到最后一个 div。
movies = soup.find('p',{'class' : 'sort-num_votes-visible'})
my_movie = movies.findAll('span')
my_span = my_movie[3].text
你很接近。
尝试使用 find_all
然后抓取最后一个元素。
例如:
from bs4 import BeautifulSoup
html_sample = '''
<p class="sort-num_votes-visible">
<span class="text-muted">Votes:</span>
<span data-value="978272" name="nv">978,272</span>
<span class="ghost">|</span> <span class="text-muted">Gross:</span>
<span data-value="858,373,000" name="nv">8.37M</span>
</p>
'''
soup = (
BeautifulSoup(html_sample, "lxml")
.find_all("span", {'name':'nv',"data-value": True})
)
print(soup[-1].getText())
输出:
8.37M