scrapy 爬虫框架实战一 :爬取小说

爬取地址:https://www.zwdu.com/book/7846/195393.html

1、创建爬虫项目
在命令行输入:

scrapy startproject xiaoshuo

2、创建自己的爬虫文件

scrapy genspider xiaoshuo zwdu.com

3、修改

start_urls = ['https://www.zwdu.com/book/7846/195393.html']

4、修改settings

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763 '
ROBOTSTXT_OBEY = False
ITEM_PIPELINES = {
   'xiaoshuo.pipelines.XiaoshuoPipeline': 300,
}#开启pipelines

5、开始解析
得到标题:
在这里插入图片描述
得到小说内容
在这里插入图片描述
得到下一章url
在这里插入图片描述
在这里插入图片描述
代码如下:

    def parse(self, response):
        title = response.xpath('//h1/text()').extract_first()
        content = ''.join(response.xpath('//div[@id="content"]/text()').extract())  #得到列表所以变成字符串
        yield  {
            'title': title,
            'content': content
        }
        next_url = response.xpath('//div[@class="bottem2"]/a[3]/@href').extract_first()
        #base_url = 'https://www.zwdu.com/ book/7846/{}'.format(next_url)
        if next_url.find('.html') != -1:
            yield scrapy.Request(response.urljoin(next_url), callback=self.parse)#自动补齐前面的url
            #yield 推送到pipelines

6、配置pipelines,将小说保存至文件中

class XiaoshuoPipeline(object):
    def open_spider(self,spider):
        self.file = open('wldf.txt', 'w',encoding='utf-8')
    def process_item(self, item, spider):
        title = item['title']
        content = item['content']
        info = title + '\n' + content + '\n'
        self.file.write(info)
        self.file.flush()
        return item
    def close_spider(self,spider):
        self.file.close()

7、新建main文件,启动爬虫
在这里插入图片描述
代码如下:

from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'zww'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值