scrapy 保存html页面,Scrapy:创建爬行索引页并保存每个相应Lin的整个HTML页面的Spider...

我是Scrapy的新手,正在尝试探索它的一些功能。我希望能够成功地创建一个scraper,它可以抓取页面上的一组链接(比如索引页面),并将整个页面保存为每个对应链接的HTML页面。(逻辑是我可以在以后离线阅读内容,或者在我开始使用Scrapy更高级的功能后创建一个调度程序)

然而,我似乎被困在这个练习上。我有一种感觉,我循环的方式是错误的——无论是for循环、回调还是返回函数。在

我的蜘蛛网.py代码如下:import urlparse

import scrapy

from scrapy.http import Request

class BasicSpider(scrapy.Spider):

name = "basic"

allowed_domains = ["web"]

start_urls = (

'http://books.toscrape.com/',

)

def parse(self, response):

# My Link Extractor

next_selector = response.xpath(

'//*[@class="nav nav-list"]/li/ul/li/a/@href'

)

for url in next_selector.extract():

yield Request(urlparse.urljoin(response.url, url),

callback=self.parse_item)

def parse_item(self, response):

# My Page Saver

filename = response.url.split("/")[-1] + '.html'

with open(filename, 'wb') as f:

f.write(response.body)

return

如果我按照期望的XPath提取特定的项,我可以让链接提取器工作。我想我可以把整件事用XPath>>响应.xpath('html').extract()…但似乎有更好的方法?在

我可以让我的页面保护程序将一个链接的页面保存为从Download a full page with scrapy采用的HTML格式。在

然而,当我试图整合两者时,我遇到了一些问题。我尝试过对for循环、回调和return命令进行修改……但是我遗漏了一些东西。在

如有任何帮助,将不胜感激。在

谨致问候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值