美文网首页蜂采
Scrapy爬取小说简单逻辑

Scrapy爬取小说简单逻辑

作者: 9ba4bd5525b9 | 来源:发表于2019-06-04 15:30 被阅读65次

     一 准备工作

    1)安装Python

    2)安装PIP

    3)安装scrapy

    4)安装pywin32

    5)安装VCForPython27.exe

     二 爬虫逻辑

    1.CMD终端创建爬虫项目

    cd Desktop(返回桌面目录) #选择文件保存位置,我放在了桌面

    Scrapy startProject BooksSpider  #BooksSpider为项目名称,自己起名

        (ps:CMD终端显示"rou can start your first spider with:"表示项目创建成功)

    2.创建爬虫文件

    拖动爬虫项目文件用Pycharm打开,点击左下角Terminal打开终端

    scrapy genspider books(蜘蛛名,自定义,不能重复,可以修改但不建议修改) www.qisuu.com(网站域名, 这里以奇书网为例)

    3.双击打开爬虫文件(蜘蛛文件.py),在Spiders包中引用可能用到的包

    (ps:文件夹图标中带空心圆为包,只有包才能直接引入,带__init__.py的文件,

    没有则表示文件夹)

    以下是创建爬虫文件自带:

    4.明确爬取目标

    以奇书网为例:

    1)请求导航条上每个按钮对应页面

    2)分别解析每个页面的电子书列表(主要获得电子书详情URL)

    3)请求详情URL,解析电子书的详细信息(书名,封面,评分,大小....下载地址)

    4)根据下载地址下载电子书到本地

    制作爬虫:

    在books.py中

    代码中的xpath与正则表达式是一样的,只是用法更加简单方便, 具体操作可百度, 此处不细说.

    在items.py文件中

    这时就可以开始爬虫了, 代码为:

    scrapy crawl books -o book.json -s FEED_EXPORT_ENCODING = utf-8

    其中 scrapy crawl books 是运行books爬虫程序, -o book.json 为以json格式保存, FEED_EXPORT_ENCODING = utf-8 为编码格式

    友情提示: 不要轻易去爬虫,只有确定自己代码没有问题才可以,可以先使用终端测试(cmd),将代码一行一行依次粘贴运行

    scrapy shell http://www.qisuu.com

      (ps:利用CMD终端测试,不要轻易去爬虫,成功末尾显示IN[1],然后依次在终端复制粘贴进去

      相关代码,包括相关引入import代码,利用xpath取特定数据可在终端打印查看效果,有时要回

      车两次展示,在目标网站没有反爬虫协议或所需数据极少时可考虑在Terminal直接运行)

    如果想要下载至本地:

    需要修改settings.py文件

    找到ITEM_PIPELINES,大约在67行,做出如上修改,IMAGES_URLS_FIELD获取下载图片的url,IMAGES_STORE新建一个文件夹,用来存放图片 FILES用法鱼IMAGES一致

    可能存在的问题,原因及解决方案:

    1.网站源代码结构与请求到的代码结构可能不一致

    (如tbody只在浏览器渲染的结构中有而请求出来的没有)

    解决方案:优化xpath写法,或改用正则表达式

    2.请求robots.txt后显示200意为请求到反爬虫协议成功会自动停止爬虫程序

    解决方案:设置不遵守robots.txt反爬虫协议,强行进入

    3.在请求到某个url显示200成功后却突然自动停止爬虫(closing spider)

    可能原因:若显示Filtered offsite request则意为scrapy自动过滤该url把它放入了黑名单

    解决方案:在该url代码运行的函数meta字典中加入dont_filter = True默认

    True不要过滤,若改为False则是要过滤

    以上就是Scrapy爬虫的基本逻辑!

    相关文章

      网友评论

        本文标题:Scrapy爬取小说简单逻辑

        本文链接:https://www.haomeiwen.com/subject/dytrxctx.html