我尝试了多种方法都无济于事。
我有这个简单的html,我想提取数字373,然后做一些除法。
<span id="ctl00_cph1_lblRecCount">Records Found: <strong> 373</strong></span>
我尝试使用下面的python脚本获取编号
import requests
from bs4 import BeautifulSoup
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import urllib3
import re
NSNpreviousAwardRef = "https://www.dibbs.bsm.dla.mil/Awards/AwdRecs.aspx?Category=nsn&TypeSrch=cq&Value="+NSN+"&Scope=all&Sort=nsn&EndDate=&StartDate=&lowCnt=&hiCnt="
NSNdriver.get(NSNpreviousAwardRef)
previousAwardSoup = BeautifulSoup(NSNdriver.page_source,"html5lib");
# parsing of table
try:
totalPrevAward = previousAwardSoup.find("span", {"id": "ctl00_cph1_lblRecCount"}).strong.text
awardpagetotala = float(totalPrevAward) / (50)
awardpagetotal = math.ceil(awardpagetotala)+1
print(date)
print("total previous awards: "+ str(totalPrevAward))
print("page total : "+ str(awardpagetotal))
except Exception as e:
print(e)
continue
我得到的只是这个错误
“ NoneType”对象没有属性“ strong”
我尝试将html解析为lxml,并且仍然是相同的错误。我在做什么错了,我该如何解决
答案 0 :(得分:1)
访问strong
标签soup.find("span").strong
的代码是完全正确的。
您可以通过将html行放入变量中,然后根据该变量创建BeautifulSoup
对象来显式尝试。
现在,该错误清楚地告诉您所寻找的span
标签不存在。
因此,这是我潜在的一些潜在问题根源:
BeautifulSoup
来创建previousAwardSoup
的html输入吗?id
属性正确吗?更具体地说,是否总是相同且不是随机的?答案 1 :(得分:0)
打印您的previousAwardSoup,并检查它是否具有您要搜索的span标签。