使用BeautifulSoup和Python从多个标签(例如具有类的h1和p标签)中提取文本

时间:2018-08-22 02:27:55

标签: python beautifulsoup

我已经弄清楚了如何从itemprop中提取文本,但是我无法从<div clas="someclass">Extract This Text Here!</div>中提取文本,我只粘贴了部分无效的代码,但是会粘贴整个内容如果需要的话。

我已经用BeautifulSoup和Python设置了一个变量来获取页面,但它不会仅获取文本。

编辑:有些文本包裹在h1标记中,有些文本包裹在p标记中,跨度较大。

编辑2:因此,某些数据位于<div class=“someclass”><h1>There’s the text</h1></div>内部,而其他数据位于<p class=“anotherclass”><span>This is another text</span></p>中。如何从多个标签中提取文本?

for each_business in info:
    yp_bus_url = each_business.find('a', {'class': 'business-name'}).get('href')
    whole_url = "https://www.yellowpages.com"+yp_bus_url
    print(whole_url)
    bus_page = requests.get(whole_url)
    bus_soup = BeautifulSoup(page.text, 'html.parser')
    # The variable below wont get text. I've tried different variations with it too but it doesn't work.
    business_name = bus_soup.findAll("div", class_="sales-info")
    print(business_name)

1 个答案:

答案 0 :(得分:1)

我已使用问题中给出的html提取了<p><div>标签内的文本。希望这就是您要寻找的

html='''<div class="someclass"><h1>There’s the text</h1></div><p class="anotherclass"><span>This is another text</span>'''
soup = BeautifulSoup(html,'lxml')
print(soup.find('div',class_='someclass').text)
print(soup.find('p',class_='anotherclass').text)
  

输出
  有文字
  这是另一种文字