我在 Vista 64 位上使用 Python.org 版本 2.7 64 位来运行 Scrapy。我正在尝试从此网页中抓取一些文本,并设法清理了大部分文本,删除了换行符和 HTML 标记。然而,标签似乎仍然包含在输出到 Command Shell 的文本中:
u' British Grand Prix practice results ', u'
这是来自以下网页:
http://www.bbc.co.uk/sport/0/formula1/28166984 上面的字符串表示指向另一个页面的超链接。我尝试使用以下正则表达式删除“u”标签,但没有成功:
body = response.xpath("//p").extract()
body2 = str(body)
body3 = re.sub(r'(\\[u]|\s){2,}', ' ', body2)
任何人都可以建议一种方法或删除这些标签吗?另外,如果可能,您是否也可以使用正则表达式来删除两个标签之间的所有内容?
谢谢
最佳答案
如 furas 所述,它仅显示编码。默认情况下,2.7x 使用 ascii,因此当字符串是 unicode 时,它用 u 表示。您可以使用 unicode 和 encode('utf-8') 来回切换
>>> a = 's'
>>> a
's'
>>> a = unicode('s')
>>> a
u's'
>>> a = a.encode('utf-8')
>>> a
's'
这是使用列表的方法
>>> ul = []
>>> ul.append(unicode('British Grand Prix practice results'))
>>> ul.append(unicode('some other string'))
>>> ul
[u'British Grand Prix practice results', u'some other string']
>>> l = []
>>> for s in ul:
... l.append(s.encode('utf-8'))
...
>>> l
['British Grand Prix practice results', 'some other string']
>>>
关于python - 使用 Scrapy 从文本中删除 <u> 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588555/