如何使用python在<strong>标记中获取html文本

时间:2018-10-19 13:03:16

标签: python

我尝试了多种方法都无济于事。

我有这个简单的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,并且仍然是相同的错误。我在做什么错了,我该如何解决

2 个答案:

答案 0 :(得分:1)

访问strong标签soup.find("span").strong的代码是完全正确的。 您可以通过将html行放入变量中,然后根据该变量创建BeautifulSoup对象来显式尝试。

现在,该错误清楚地告诉您所寻找的span标签不存在。 因此,这是我潜在的一些潜在问题根源:

  • 您确定要输入BeautifulSoup来创建previousAwardSoup的html输入吗?
  • 您确定id属性正确吗?更具体地说,是否总是相同且不是随机的?

答案 1 :(得分:0)

打印您的previousAwardSoup,并检查它是否具有您要搜索的span标签。