Scrapy更新响应HTML正文
可以在HTML response.body的meta标记中写入我刚刚爬网的页面的URL吗?在将其保存到文件之前,我需要在response.body中添加下面的meta标记。我不需要提取HTML标记。我有HTML head标记/HTML/head的Xpath,我只需要将下面的元数据添加到其中Scrapy更新响应HTML正文,html,xpath,scrapy,Html,Xpath,Scrapy,可以在HTML response.body的meta标记中写入我刚刚爬网的页面的URL吗?在将其保存到文件之前,我需要在response.body中添加下面的meta标记。我不需要提取HTML标记。我有HTML head标记/HTML/head的Xpath,我只需要将下面的元数据添加到其中 class MSDSpider(CrawlSpider): name = "msdtest" allowed_domains = ['workandincome.govt.nz'] start_urls =
class MSDSpider(CrawlSpider):
name = "msdtest"
allowed_domains = ['workandincome.govt.nz']
start_urls = ['https://www.workandincome.govt.nz/map/definitions/alternative-housing.html',]
rules = (
Rule(LinkExtractor(allow=('.html')), callback='parse_item', follow=False),
)
def parse_item(self, response):
hxs = Selector(response)
page = response.url.split("/")[-1]
filename = '%s' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
是否有关于Scrapy的API或文档提供了如何添加到response.body的示例?我不这么认为,我认为您应该使用html解析器,如
lxml
或bs4
将标记添加到响应并将其写入文件感谢我找到了解决方法。我只是用另一个实体替换了响应体。比如:body=response.body new\u body=body.replace(“”,%response.url)page=response.url.split(“/”[-1]文件名='%s'%page',打开(文件名,'wb')为f:f.write(new\u body)self.log('保存的文件%s'%filename'),我不这么认为,我认为您应该使用html解析器,如lxml
或bs4
将标记添加到响应并将其写入文件感谢我找到了一个解决方法。我只是用另一个实体替换了响应体。类似于:body=response.body new\u body=body.replace(“”、%response.url)page=response.url.split(“/”[-1]文件名='%s'%page',打开(文件名,'wb')为f:f.write(new\u body)self.log('保存的文件%s'%filename)