爬虫 scrapy 抓取小说实例

以http://www.biquge.com/2_2970/ 这部小说为例,用scrapy对这部小说的章节进行抓取

#coding=utf-8
import scrapy,os
curpath = os.getcwd()
noveldir = ''
class novelSpider(scrapy.Spider):
	name = 'xiaoshuo'
	start_urls = ['http://www.biquge.com/2_2970/']	
	def __init__(self):
		self.noveldir = ''
		
	def parse(self,response):
		title = response.css('div#info h1::text').extract_first()    #小说名
		self.noveldir = os.path.join(curpath,title)
		self.log(self.noveldir )
		if not os.path.exists(self.noveldir ):
			os.makedirs(self.noveldir )                          #创建小说目录
		self.log('开始下载%s' % title.encode('utf8'))  
		for href in  response.css('dd a').css('a::attr(href)'):      #小说章节链接
			yield response.follow(href,self.parse_page)          
	def parse_page(self,response):
		filename = response.css('div.bookname h1::text').extract_first().strip() #章节名,同时作为文件名
		self.log('开始下载 %s' % filename.encode('utf8'))
		with open(os.path.join(self.noveldir ,filename),'w+') as f:
			for item in response.css('div#content::text').extract():         #小说章节内容写到文件
				f.write(item.encode("utf8")+"\n")

保存后执行scrapy crawl xiaoshuo就可以看到在目录下的全部小说章节了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值