我试图让在span class="last value"
部分所有的值,但是,有时部分有轻微的变化,span class="last value empty"
,和我的代码跳过的变化,我想获得所有以"last value"
在span class="last value"
开始部分,或替代所有要么"last value"
或"last value empty"
区段
这是我坚持的观点:
r = requests.get(baseurl)
soup = BeautifulSoup(r.content)
elem = soup.find_all('span', {'class':"last value"})
问题是,它们是作为两个独立的类last
和value
处理。您可以使用CSS选择这样的
soup.select('span.last.value')
例
html="""
<span class="last value">
1
</span>
<span class="last value empty">
2
</span>
"""
from bs4 import BeautifulSoup
import re
soup=BeautifulSoup(html,'html5lib')
print(soup.select('span.last.value'))
产量
[<span class="last value">
1
</span>, <span class="last value empty">
2
</span>]
您可以使用CSS选择器,如:
soup.select("span[class*=lastvalue]")
或者您可以使用使用XPath支持scrapy selector
:
from scrapy.selector import Selector
sel = Selector(text=r.content)
elem = sel.xpath('//span[contains(@class, "lastvalue")]')