示例代码:
<div class="sort-line selected"
data-discount="3392"
data-count="669"
data-ship_price="0"
>
我想通过bs4解析“ 669”,但是有错误'NoneType'对象不可调用。
任何帮助将不胜感激!
答案 0 :(得分:1)
首先,您必须隔离标签,然后可以将其像字典一样对待以获得所需的属性值。 Read the documentation,以了解更多有关此的信息。
html="""
<div class="sort-line selected"
data-discount="3392"
data-count="669"
data-ship_price="0">
</div>
"""
from bs4 import BeautifulSoup
soup=BeautifulSoup(html,'html.parser')
div=soup.find('div')
print(div['data-count'])
输出:
669
如果有很多div,则应包括更多filters来隔离div。 例如
div=soup.find('div',class_="sort-line selected")
使用您的网址
import requests
from bs4 import BeautifulSoup
r=requests.get('https://pandao.ru/product/b89db09a-d978-437c-be37-a0c2ceffc315?d=1de543b5-527e-44e4-9888-d880d1a3c331&pid=7a9bf860-bcc7-41ea-a03f-c6bcd3e2b8f5')
soup=BeautifulSoup(r.text,'html.parser')
div=soup.find('div',class_="sort-line selected")
print(div['data-count'])
输出:
667