python - 使用 Scrapy 从文本中删除 <u> 字符

标签 python regex scrapy

我在 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/

相关文章:

php - 如何在 PHP 中用单个空格正确替换多个空格?

python - 即使在他们的文档中给出的教程中也会出现 Scrapy 错误

python - 新手: How to scrape multiple web pages with only one start_urls?

python - 使用 python 生成器处理大文本文件

python - sys.setdefaultencoding ('utf-8' 的危险)

python - 是否有 python 方法来验证文件或 URL 的存在?

javascript - 使用 javascript RegExp 获取数字,最少 2 位数字,有时 3 位数字

javascript - 匹配完整句子,跳过虚假点

python - 如何在程序中将参数传递给scrapy spider?

python:如何用正则表达式拆分这个字符串?