Python 如何在scrapy输出中保留换行符?

Python 如何在scrapy输出中保留换行符?,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,在这个脚本中,我在YC博客上抓取了两篇文章。在输出中,我得到了想要的文本,但我想保留换行符。在网站的html中,似乎他们在使用元素断行 如何在scrapy输出中保留换行符?现在根本没有。使用f.writelines(parsedText)而不是使用for循环。writelines方法获取一个列表并将每个元素写入自己的行。提取p元素(可能是div)的父HTML,并使用将其转换为纯文本 例如,假设所有段落都具有相同的父级(否则,以不同方式选择正确的公共父级): 从html\u文本导入提取\u文本 h

在这个脚本中,我在YC博客上抓取了两篇文章。在输出中,我得到了想要的文本,但我想保留换行符。在网站的html中,似乎他们在使用

元素断行


如何在scrapy输出中保留换行符?现在根本没有。

使用
f.writelines(parsedText)
而不是使用for循环。writelines方法获取一个列表并将每个元素写入自己的行。

提取
p
元素(可能是
div
)的父HTML,并使用将其转换为纯文本

例如,假设所有段落都具有相同的父级(否则,以不同方式选择正确的公共父级):

从html\u文本导入提取\u文本
html=response.xpath('//p/。).get()
纯文本=提取文本(html)

您可以使用response.xpath('//p/text()').getall(),text方法来获取文本。如果要使用p标记,只需使用response.xpath('//p').getall()。我写的对吗?他不是在问如何包含p标签,而是在他要写的文本文件中的每个元素之间添加换行符。
class YCSpider(scrapy.Spider):
    name = "ycspider"

    def start_requests(self):
        urls = [
            'https://www.ycombinator.com/library/4D-yc-s-essential-startup-advice',
            'https://www.ycombinator.com/library/4A-a-guide-to-seed-fundraising',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-1]
        filename = f'ycblog-{page}.html'
        parsedText = response.xpath('//p/text()').getall()
        with open(filename, 'w') as f:
            for x in parsedText:
                f.write(x)
        self.log(f'Saved file {filename}')