Python 如何在scrapy输出中保留换行符?
在这个脚本中,我在YC博客上抓取了两篇文章。在输出中,我得到了想要的文本,但我想保留换行符。在网站的html中,似乎他们在使用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
元素断行
如何在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}')