Python3 BeautifulSoup在变量中查找文本

时间:2017-09-17 10:47:39

标签: python python-3.x beautifulsoup bs4

我有一个问题,我必须在变量中搜索文本。有几个字。 这是我的代码的示例。

<value uri=" /user/var/120/10251/0/0/12242" strValue="61" unit="°C" decPlaces="0" scaleFactor="10" advTextOffset="0">605</value>

我可以毫无问题地显示标签value。 现在我只需要变量“strValue”中包含的值。 不幸的是,我在纪录片中找不到任何帮助。

我希望你可以帮助我!

3 个答案:

答案 0 :(得分:1)

假设您使用以下HTML文档:

soup = BeautifulSoup('''<value uri=" /user/var/120/10251/0/0/12242" strValue="61" unit="°C" decPlaces="0" scaleFactor="10" advTextOffset="0">605</value>''')

>>> soup.value
<value advtextoffset="0" decplaces="0" scalefactor="10" strvalue="61" unit="°C" uri=" /user/var/120/10251/0/0/12242">605</value>

您可以通过两种方式访问​​属性:

  • 按键,类似于字典:

    strvalue = soup.value['strvalue']
    
  • 或通过attrs词典:

    strvalue = soup.value.attrs['strvalue']
    

请注意,您需要使用属性名称的小写版本,即strvalue,而不是strValue

答案 1 :(得分:0)

试试这个:

from bs4 import BeautifulSoup

html = """
<value uri=" /user/var/120/10251/0/0/12242" strValue="61" unit="°C" decPlaces="0" scaleFactor="10" advTextOffset="0">605</value>
"""
soup = BeautifulSoup(html, 'lxml')
strValue = soup.select_one('value').get('strvalue')

答案 2 :(得分:-1)

我解决了这个问题。我是这样做的:

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'http://192.168.7.5:8080/user/var/120/10251/0/0/12242'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
page_soup_value = page_soup.value
page_soup_value.get('strvalue')