进一步探索BeautifulSoup

时间:2018-02-02 15:02:35

标签: python web-scraping beautifulsoup

因此,我对BeautifulSoup和网络抓取一般都很陌生。我目前正在运行代码:

attraction_names_full = soup.find_all('td', class_='alt2', align = 'right', height = '28')

返回包含以下对象的列表:

<td align="right" class="alt2" height="28">
 A Pirate's Adventure - Treasures of the Seven Seas
 <br/>
 <span style="font-size: 9px; color: #627DAD; font-style: italic;">
  12:00pm to 6:00pm
 </span>
</td>

我想从中得到的只是包含文本的行,在本例中是

A Pirate's Adventure - Treasures of the Seven Seas
然而,我不确定如何解决这个问题,因为它似乎没有任何标签只围绕文本。

我试图看看我是否可以将元素作为字符串进行交互,但对象类型似乎是:

<class 'bs4.element.Tag'>

我不确定如何操纵,并且肯定必须有一种更有效的方法来实现这一点。

关于如何实现这一目标的任何想法? - 供我参考的网页

url = 'https://www.thedibb.co.uk/forums/wait_times.php?a=MK'

2 个答案:

答案 0 :(得分:2)

您可以提取div, main, section { display: flex; flex-shrink: 1; /* adjusted */ } section { padding: 60px 0; } main { background-color: lightgreen; } section { border: 2px dashed red; } div { border: 1px dashed black; } body { margin: 0; }元素,然后按如下方式获取剥离文本:

<main>
  <section>
    <div class="content">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum eget nulla sagittis sem egestas molestie. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
    </div>
  </section>
</main>

哪个会给你输出开始:

<span>

答案 1 :(得分:1)

html = urllib.request.urlopen("https://www.thedibb.co.uk/forums/wait_times.php?a=MK").read()
soup = BeautifulSoup(html, 'html.parser')
listElem = list(soup.find_all('td', class_='alt2', align = 'right', height = '28'))
print(listElem[1].contents[0])

你可以使用.contents,它对我有用,输出是&#34; Jack Sparrow海盗教程&#34;