Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用scrapy xpath从任何HTML格式提取文本的通用方法_Python_Html_Xpath_Web Scraping_Scrapy - Fatal编程技术网

Python 使用scrapy xpath从任何HTML格式提取文本的通用方法

Python 使用scrapy xpath从任何HTML格式提取文本的通用方法,python,html,xpath,web-scraping,scrapy,Python,Html,Xpath,Web Scraping,Scrapy,我想用has从HTML页面提取文本 我想以完全相同的文本格式废弃这些页面,它是如何在页面上显示的。我发现了一个在线html到文本转换器,它提供了我想要的输出,但我不知道如何自己实现它。 有什么方法/帮助吗?我真的被这个问题缠住了 这是在线转换器,如果您想查看- 在表达式上尝试类似于concat(//article/div,“\n”)的方法。如果我要在xpath中添加这个函数,请解释一下这个函数好吗?没关系,尝试过它,只对第一个匹配有效。也许您可以先用一个不常见的字符替换,然后解析html。此XP

我想用has
从HTML页面提取文本

我想以完全相同的文本格式废弃这些页面,它是如何在页面上显示的。我发现了一个在线html到文本转换器,它提供了我想要的输出,但我不知道如何自己实现它。 有什么方法/帮助吗?我真的被这个问题缠住了

这是在线转换器,如果您想查看-


在表达式上尝试类似于
concat(//article/div,“\n”)
的方法。如果我要在xpath中添加这个函数,请解释一下这个函数好吗?没关系,尝试过它,只对第一个匹配有效。也许您可以先用一个不常见的字符替换
,然后解析html。此XPath似乎获取了article标记
(//div[祖先::article,而不是(.='')]/text()|//span[祖先::article/div]/text())
 <article>
        <div> This is first Paragraph </div>
        <div> This is second Paragraph 
            <div> This is third paragraph &nbsp
                <span> 3rd para continue </span> 
            </div> 
        </div>
 </article>
xxx = response.xpath("//article/div | //article/ul | //article/ol | //article/p")
content = ""
for eachLine in warningLetterlines:     
    tmp = eachLine.xpath('.//text()').extract()
content += "".join( i.replace(u'\xa0', u'') for i in tmp ) + "\n"
This is first paragraph
This is second paragraphThis is third paragraph3rd para continue
This is first paragraph
This is second paragraph 
This is third paragraph 3rd para continue