Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索<;b>;使用BeautifulSoup和python实现价值_Python_Beautifulsoup - Fatal编程技术网

检索<;b>;使用BeautifulSoup和python实现价值

检索<;b>;使用BeautifulSoup和python实现价值,python,beautifulsoup,Python,Beautifulsoup,下面是html页面的示例。尝试创建一个数据集,其中标记下的值将是标题,标记的值将是它们的值。如何做到这一点。请帮忙 <div class ="profile"> <P class="info"> <b>Full name</b> <span>Raju Kumar</span> </p> <P class="info"

下面是html页面的示例。尝试创建一个数据集,其中标记
下的值将是标题,标记
的值将是它们的值。如何做到这一点。请帮忙

<div class ="profile">

        <P class="info">
          <b>Full name</b>
          <span>Raju Kumar</span>
        </p>

        <P class="info">
          <b>DOB</b>
          <span>05/06/1992</span>
        </p>

        <P class="info">
          <b>DOB</b>
          <span>05/06/1992</span>
        </p>



</div>

你只能用
汤找到第一个
p
。find
-使用
汤。像你用
b
标签一样找到所有的
你只能用
汤找到第一个
p
。find
-使用
汤。像用
b
标签一样找到所有的
你可以用以下方法得到列表行:

values = [(p.find('b').string, p.find('span').string) 
             for p in soup.find_all('p', class_='info')]
如果您喜欢字典格式:

dict_values = {p.find('b').string: p.find('span').string 
                  for p in soup.find_all('p', class_='info') }
编辑:

如果需要构建数据帧

给定一系列对,您就有了该方法:

values = [(p.find('b').string, p.find('span').string) 
             for p in soup.find_all('p', class_='info')]
value_df = pandas.DataFrame.from_items(values)
或者您可以使用:


您可以通过以下行获取列表:

values = [(p.find('b').string, p.find('span').string) 
             for p in soup.find_all('p', class_='info')]
如果您喜欢字典格式:

dict_values = {p.find('b').string: p.find('span').string 
                  for p in soup.find_all('p', class_='info') }
编辑:

如果需要构建数据帧

给定一系列对,您就有了该方法:

values = [(p.find('b').string, p.find('span').string) 
             for p in soup.find_all('p', class_='info')]
value_df = pandas.DataFrame.from_items(values)
或者您可以使用:


如果我理解正确,则需要循环两次:

header = [b.string for h in soup.find_all('p', class_='info') for b in h.find_all('b')]

如果我理解正确,则需要循环两次:

header = [b.string for h in soup.find_all('p', class_='info') for b in h.find_all('b')]

我试过了,但收到了错误消息-
AttributeError:'ResultSet'对象没有属性'find_all'
@RajuSingh您是如何定义
soup
?我试过了,但是我得到了这个错误消息-
AttributeError:'ResultSet'对象没有属性'find_all'
@RajuSingh当我添加
时,你是如何定义
汤的
.get_txt()
p.find('b')
p.find('span')
。它很好用。但是你认为我也可以制作一个数据框,其中
p.find('b')。get\u text'
将是标题,而
p.find('span')。get\u text'
将是它们的值。你可以使用
数据框。在dict
方法中,在我添加
时检查编辑。get\u txt()
p.find('b')
p.find('span')
)。它很好用。但是你认为我也可以制作一个数据框,其中
p.find('b')。get_text'
将是标题,而
p.find('span')。get_text'
将是它们的值。你可以使用
数据框。从\u dict
方法,检查编辑