因此,我对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'
答案 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;