本文主要是介绍爬虫 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就可以看到在目录下的全部小说章节了
这篇关于爬虫 scrapy 抓取小说实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!