我正在尝试从网站到Python读取html内容,以分析那里的文本并确定它们属于哪个类别。我在使用长破折号时遇到问题,当我尝试使用它们时,它们会变成NoneType。我已经尝试过在此站点上建议的一些修复程序,但是都没有起作用。

from bs4 import BeautifulSoup
import re
import urllib.request
response = urllib.request.urlopen('website-im-opening')
content = response.read().decode('utf-8')
#this does not work
content = content.translate({0x2014: None})
content = re.sub(u'\u2014','',content)
#This is other part of code
htmlcontent = BeautifulSoup(content,"html.parser")

for cont in htmlcontent.select('p'):
    if cont.has_attr('class') == False:
        print(cont.strip()) #Returns an error as text contains long dash


有什么想法可以过滤字符串中的长破折号以便与其他文本一起使用吗?我可以将其替换为短破折号或完全删除,它们对我而言并不重要。

谢谢!

最佳答案

使用bs4提取数据后,应清除数据:


BS4将转换一些HTML实体,您不需要自己动手。
BS4将为您解码文档


```

response = urllib.request.urlopen('website-im-opening')

content = response.read()

htmlcontent = BeautifulSoup(content,"html.parser")

for cont in htmlcontent.find_all('p', class_=False):

    print(p.text)


```

关于python - 从字符串中删除长破折号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42856795/

10-14 00:00