Python 将URL标题保存在文本文件中
您好,我有下面的剪贴代码,我想保存在一个文件中提供的URL的所有标题,但它只保存lasturl3的标题Python 将URL标题保存在文本文件中,python,scrapy,Python,Scrapy,您好,我有下面的剪贴代码,我想保存在一个文件中提供的URL的所有标题,但它只保存lasturl3的标题 from scrapy.spider import BaseSpider from scrapy.selector import Selector from scrapy.http import HtmlResponse from kirt.items import KirtItem class KirtSpider(BaseSpider):
from scrapy.spider import BaseSpider
from scrapy.selector import Selector
from scrapy.http import HtmlResponse
from kirt.items import KirtItem
class KirtSpider(BaseSpider):
name = "spider-name"
allowed_domains = ["url1","url2","url3"]
start_urls = ["url1","url2","url3"]
def parse(self,response):
sel = Selector(response)
title = str(sel.xpath('//title/text()').extract())
with open('alltitles.txt','w') as f:
f.seek(0)
f.write(title)
问题就在这里,有两种不同的方式:
with open('alltitles.txt','w') as f:
f.seek(0)
f.write(title)
以“w”模式打开文件不仅会打开该文件,而且如果已经有具有该名称的文件,它会首先删除该文件。您应该改为使用模式“a”打开文件,如果现有文件存在,则在现有文件中添加新行
但是,在这之后,还可以调用f.seek0,它将文件写入指针倒回文件的开头,并使其覆盖当前文件内容。这段代码更像:
with open('alltitles.txt','a') as f:
# write out the title and add a newline.
f.write(title + "\n")
问题就在这里,有两种不同的方式:
with open('alltitles.txt','w') as f:
f.seek(0)
f.write(title)
以“w”模式打开文件不仅会打开该文件,而且如果已经有具有该名称的文件,它会首先删除该文件。您应该改为使用模式“a”打开文件,如果现有文件存在,则在现有文件中添加新行
但是,在这之后,还可以调用f.seek0,它将文件写入指针倒回文件的开头,并使其覆盖当前文件内容。这段代码更像:
with open('alltitles.txt','a') as f:
# write out the title and add a newline.
f.write(title + "\n")
检查你的缩进-我猜你想用。。。。条款缩进了一个止损点,是吗?对不起,没让你明白。哦,抓住你了。让我check@bgporter我只是打错了。我的源文件很好,现在也在这里更正了。你知道我如何保存所有的标题而不是一个吗。。。我感觉它每次都在保存标题并更新它。检查你的缩进-我猜你想用。。。。条款缩进了一个止损点,是吗?对不起,没让你明白。哦,抓住你了。让我check@bgporter我只是打错了。我的源文件很好,现在也在这里更正了。你知道我如何保存所有的标题而不是一个吗。。。我感觉每次都在保存标题并更新它。宾果谢谢,有一件事我也忘了先提到我们也要把标题转换成字符串。宾果谢谢,有一件事我也忘了先提到我们也要把标题转换成字符串。