Skip to main content
 首页 » 编程设计

python之使用 Scrapy 时如何只返回可见文本

2025年05月04日11zhwl

我在 Windows Vista 上使用 Python.org 版本 2.7 64 位。我有以下代码:

from scrapy.spider import BaseSpider 
from scrapy.selector import Selector 
 
class MySpider(BaseSpider): 
    name = "wiki" 
    allowed_domains = ["bbc.co.uk"] 
    #start_urls = ["http://www.bbc.co.uk/sport/0/"] 
    start_urls = ["http://www.bbc.co.uk/sport/0/formula1/28166984"] 
 
    def parse(self, response): 
        titles = response.selector.xpath("//title") 
        for titles in titles: 
            body = response.xpath("//p").extract() 
            body2 = str(body) 
            body2.replace('\n', '') 
            body2.replace('<p>', '') 
            print body2 

它正在返回我试图抓取的页面的主要文本,但它也返回大量 HTML 标记和回车符。在最后几行中,您可以看到我尝试将变量“body”转换为名为“body2”的字符串,然后使用替换函数删除一些不需要的 HTML,但这没有达到预期的效果。

谁能建议一种实现我想做的事情的方法?

谢谢

请您参考如下方法:

请使用 scrapy.utils.markup 模块中的 remove_tags() 函数

from scrapy.utils.markup import remove_tags 
 
# it'll print 'hello, world' 
print remove_tags('<p>hello, world</p>')