Python 美丽的汤-剥离HTML标记时返回奇怪字符

Python 美丽的汤-剥离HTML标记时返回奇怪字符,python,html,beautifulsoup,python-requests,Python,Html,Beautifulsoup,Python Requests,我从已接受的堆栈溢出答案中抄袭了大部分代码,并插入到以下代码中(在Python 2.7中运行): …这可以移除标签,但我现在在屏幕上打印了很多奇怪的文本,因此: </body></html> <html><body&a

我从已接受的堆栈溢出答案中抄袭了大部分代码,并插入到以下代码中(在Python 2.7中运行):

…这可以移除标签,但我现在在屏幕上打印了很多奇怪的文本,因此:

</body></html>
<html><body>

                        The latest national and international stories as they break   

                            <html><body>
</body></html>
<html><body></body></html>
<html><body>Rating:  <html><body>3.1</body></html></body></html>
</body></html>
</body></html>
</body></html>
…谁能告诉我我做错了什么


谢谢

标签可以帮助您找到想要的文本。该页面中的大部分文本位于HTML表格内,可按如下方式提取:

from bs4 import BeautifulSoup
import requests
import re

r = requests.get('http://www.tvguide.co.uk/mobile/channellisting.asp?ch=66')
soup = BeautifulSoup(r.text, "html.parser")

for tr in soup.select('table tr'):
    if not tr.script:
        print ' -'.join(re.sub(r'\s+', ' ', td.text) for td in tr.find_all('td'))
这将使您的输出开始:

6:00am-早餐:国内外新闻综述,加上体育报道、天气预报、艺术和娱乐节目。包括“新闻观察”在内,评级为7.45:1.4
上午7:00-早餐:国内外新闻综述,体育报道、天气预报、艺术和娱乐节目。包括“新闻观察”在内,评级为7.45:1.4
上午8:00-早餐:国内外新闻综述,体育报道、天气预报、艺术和娱乐节目。包括“新闻观察”在内,评级为7.45:1.4
上午9:00-BBC新闻最新的国家和国际新闻,因为他们打破评级:3.1
上午10:00-BBC新闻最新的国家和国际新闻,因为他们打破评级:3.1
上午10:30-2018年4月20日旅游节目加入团队,探索全球新的旅游目的地,发现世界上一些最受欢迎的度假热点的隐藏面评级:4
上午11:00-BBC新闻最新的国家和国际新闻,因为他们打破评级:3.1
11:30-2018年4月21日伦敦日刊目前派驻伦敦的外国记者通过局外人的眼光观察英国的事件,以及本周的问题在世界范围内如何处理评级:6.3
下午12:00-BBC新闻最新的国家和国际新闻,因为他们打破评级:3.1
下午12:30-点击2018年4月20日最新小工具、网站、游戏和计算机行业新闻指南评级:3.3

您不应该试图扔掉所有东西,留下文本,而应该使用它来提取所需的文本。你的问题不能解释你想得到什么。通常,对于这样的网站,你会找到所有的TR/TD标签并提取其中的文本。不过,我想要的只是文本。这是一个webscraper。可以通过对汤中的tr使用
来简化循环。选择('table tr')
…谢谢大家。我的眼睛还在被漂亮的汤吸引。
from bs4 import BeautifulSoup
import requests
import re

r = requests.get('http://www.tvguide.co.uk/mobile/channellisting.asp?ch=66')
soup = BeautifulSoup(r.text, "html.parser")

for tr in soup.select('table tr'):
    if not tr.script:
        print ' -'.join(re.sub(r'\s+', ' ', td.text) for td in tr.find_all('td'))