scrapy爬取起点小说网

闲来无事,在学习过程中练习用scrapy爬取起点小说名
工具:python3.6
操作系统:linux
浏览器:谷歌浏览器

创建项目

在黑屏终端创建一个项目:scrapy startproject Qidian
进入项目目录:cd Qidian
创建一个爬虫器:scrapy genspider qidian www.qidian.com/all (注意:这里域名不能带http,因为框架会默认给你加上)
在pycharm中打开项目,可以看到目录结构如图所示
├── Qidian
│ ├── init.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── pycache
│ │ ├── init.cpython-36.pyc
│ │ └── settings.cpython-36.pyc
│ ├── settings.py
│ └── spiders
│ ├── init.py
│ ├── pycache
│ │ └── init.cpython-36.pyc
│ └── qidian.py
└── scrapy.cfg
接下来我们打开qidian.py,代码如下所示.此时我们的项目已经创建成功了

import scrapy

class QidianSpider(scrapy.Spider):
name = ‘qidian’
allowed_domains = [‘www.qidian.com/all’]
start_urls = [‘http://www.qidian.com/all/‘]

def parse(self, response):
    pass

开始爬虫

这时我们需要把url队列修改一下,框架提供的比较简单,我们自己定义一个函数来保存url队列,代码如下:
def start_requests(self):
# 定义一个url队列
urls = [‘http://www.qidian.com/all‘]
for url in urls:
# 创建一个请求对象
req = scrapy.Request(url, self.parse)
# 发送清求
yield req
接下来我们需要解析页面,在这里我们用xpath来解析
打开起点网站,找到要爬取的页面,然后点击点击审查元素,找到要爬取的元素,可以右击copy xpath 然后去解析,我习惯自己找xpath
解析函数如下所示:
def parse(self, response):
title = response.xpath(“//div[@class=’book-mid-info’]/h4/a/text()”).extract()
print(title)
因为这只是个简单的爬虫,所以我们只修改了qidian.py文件
我们看下qidian.py的所有代码,如下所示:

-- coding: utf-8 --

import scrapy

class QidianSpider(scrapy.Spider):
name = ‘qidian’
allowed_domains = [‘www.qidian.com/all’]
# start_urls = [‘http://www.qidian.com/all/‘]
def start_requests(self):
# 定义一个url队列
urls = [‘http://www.qidian.com/all‘]
for url in urls:
# 创建一个请求对象
req = scrapy.Request(url, self.parse)
# 发送清求
yield req

def parse(self, response):
    title = response.xpath("//div[@class='book-mid-info']/h4/a/text()").extract()
    print(title)

最后我们黑屏终端可以输入scrapy crawl qidian –nolog(–nolog是去掉日志的意思,我们只看爬取内容)
最后我们看爬取结果: [‘凡人修仙之仙界篇’, ‘圣墟’, ‘飞剑问道’, ‘修真聊天群’, ‘汉乡’, ‘牧神记’, ‘大王饶命’, ‘斗罗大陆III龙王传说’, ‘深夜书屋’, ‘超神机械师’, ‘天道图书馆’, 狂潮’, ‘斗战狂潮’, ‘儒道至圣’]
最后我们可以把爬取到的内容写进一个文件中,代码如下:
with open(‘novel.txt’, ‘a+’)as f:
f.write(title)
f.write(“\r\n”)
这时我们可以在项目目录中看见novel.txt文件了,打开内容如下所示:

凡人修仙之仙界篇
圣墟
飞剑问道
修真聊天群
汉乡
牧神记
大王饶命
斗罗大陆III龙王传说
深夜书屋
超神机械师
天道图书馆
道君
赘婿
太初
带着仓库到大明
逆流纯真年代
大道争锋
修炼狂潮
斗战狂潮
儒道至圣

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值