网络文学随互联网的崛起而崛起,在时间日益碎片化的今天,网络文学以其方便快捷的特点适应了人们的娱乐性需求,因而也快速成长一个巨大的市场。娱乐是人们的根本性需求,文化是这个过程中的附属品。要想知道人们关心的是什么?什么又在兴起,哪些题材又在逐渐没落,我们需要从整体去分析。

因此这个爬虫也就应运而生,我们选取了目前国内最大的小说平台——起点网作为数据来源。本爬虫主要是为了爬取起点小说的基本信息(题目、作者、简介等),在写爬虫的过程中,我也碰到了一些有趣的反爬机制,这些小障碍我也会在本文中一并记录下来,希望能够给后来者一些帮助。

架构 \ 包

本爬虫主要是用Scarpy架构

lxml(使用XPath需要的包)

数据存储

主要采用MongoDB数据库,MongoDB数据库在处理这种快速读写的数据有着非常高的效率,该部分主要通过修改pipelines来实现:

import pymongo

class MongoPipeline(object):

def __init__(self,mongo_uri,mongo_db):

self.mongo_uri = mongo_uri

self.mongo_db = mongo_db

@classmethod

def from_crawler(cls,crawler):

return cls(

mongo_db=crawler.settings.get('MONGO_DB'),

mongo_uri=crawler.settings.get('MONGO_URI')

)

def open_spider(self,spider):

self.client = pymongo.MongoClient(self.mongo_uri)

self.db = self.client[self.mongo_db]

def process_item(self,item,spider):

self.db[item.collection].insert(dict(item))

return item

def close_spider(self,spider):

self.client.close()

起点网的反爬机制

无论怎么看,起点网的反爬机制都是很业余的,我本来以为需要构建一个IP池,或者说限制住访问速度才能爬的下来;但这些都没有用到,基本上只要写完基本的Scrapy我们就能得到所需要的数据。

但在爬取网站数据的时候,我遇到了相当多次访问连接失效的问题,不管是使用爬虫访问还是直接用浏览器访问,这种情况都不少,对此我认为起点网的后台代码也许写的真的很烂,但就是这么烂的代码支撑起了中国网络文学界的半壁江山。果然在业务确定、行业壁垒已经建立的情况下,只要代码能跑得动,就不需要大修。

那么起点网主要使用了哪些反爬机制呢?

1. 数字乱码

kOFkOe.png

我们可以通过F12键打开控制台,在Elements中查看到这一反爬机制;此处我已经截图,我们可以看到:

原本在浏览器中清晰可见的数字,在element(HTML)代码中变成了乱码,这是起点给予的第一个反爬机制。

kOFFyD.png

源码

原本我以为是由于编码的问题导致的控制台查看出现了乱码,在后台我看到数字的编码为

python小说全站爬虫_起点小说网全站爬虫(Python)相关推荐

  1. Python爬虫_某宝网案例

    Python爬虫_某宝网案例 一.导入第三方库,确定url,定义headers ,伪装爬虫代码 import requests url = 'https://s.taobao.com/search?q ...

  2. Python爬虫(6):煎蛋网全站妹子图爬虫

    Python爬虫(6):煎蛋网全站妹子图爬虫 上一篇文章中我们抓取了豆瓣图书的数据,如果大家运行成功,并且看到文件夹下的 txt 文件了.是不是有一种刚接触编程,第一次输出Hello world!时的 ...

  3. python3小说爬虫之起点女生网

    修女异世修仙路 目录 一.单文爬取 二.目录爬取 三.代码整合 目录 全文参考:https://blog.csdn.net/c406495762/article/details/105797795 不 ...

  4. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  5. python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

    前言: 今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷 ...

  6. 安卓手机小说阅读器_乐小说阅读器下载手机版-乐小说阅读器app下载安装

    乐小说阅读器app,一款非常不错的小说阅读器,这里的小说资源不仅非常的丰富,而且用户们可以免费任意阅读.小说内容非常的优质,阅读界面非常的清爽简洁,无任何广告弹出.喜欢看小说的就下载试试吧! 关于乐小 ...

  7. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...

  8. python展开阅读全文_展开阅读全文 js 爬虫操作

    from selenium import webdriver import time import random from bs4 import * browser = webdriver.Chrom ...

  9. 安卓手机小说阅读器_书城小说阅读器app下载_书城小说阅读器手机版下载

    书城小说阅读器是一款智能小说阅读软件,可以智能搜索全网的小说,通过关键字搜索小说,一键轻松阅读小说,感兴趣的朋友快来下载书城小说阅读器吧. 书城小说阅读器app特色 1.内置智能查找.目录查找.关键字 ...

最新文章

  1. zookeeper入门系列 : 分布式事务
  2. 程序猿惯用口头禅与内心真实 OS,快来看看你中招没?
  3. 暴风前员工替冯鑫惋惜,是公司的老白兔员工害了他
  4. Windows 10版星巴克应用现身官网
  5. 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式...
  6. numpy 函数一:linspace
  7. [深入学习C#]LINQ查询表达式详解(2)——查询表达式的转换
  8. 《机器学习训练秘籍》中文版58章节 完整开源 吴恩达
  9. kali中binwalk/foremost/zip2john工具的配合使用
  10. Unity3d游戏开发用哪个语言更好?
  11. 我的管理成长与思考 - 那些领导的真相,理解和思考
  12. 2020全国各地男女身高排行出炉,从数据看南北差异到底有多大?
  13. svg图片 填充颜色
  14. 如何正确使用Pandas库提升项目的运行速度?
  15. 2018吉林CCPC(HDU6555)A.The Fool
  16. Python 中的 import 语句使用
  17. TRACY自己学英语的5W三七法则
  18. PCL 点云DBSCAN聚类算法
  19. 平板探测器的工作原理及优缺点
  20. 陀螺财经Value100“以太零”项目交流会

热门文章

  1. Linux 之父家断电六天:内核更新延期;华为 EMUI 11 用户突破1亿;美国得州最大电力公司申请破产 | 极客头条...
  2. 下一代数据备份方式会是DNA吗?
  3. 链表反转的两种实现方法,后一种击败了100%的用户
  4. 程序员在这些地方敲代码,普通笔记本根本扛不住
  5. 疫情期间我们与你同在:关爱障碍群体刚需,坚持做无障碍的倡议书
  6. 程序员躲不掉的“中年危机”
  7. 为何各家抢滩物联网?
  8. 蚂蚁金服自研数据库打败Oracle拿下世界第一;三星手机全面退出中国;微软发布Windows 10X双屏系统 | 极客头条...
  9. Java String 对象,你真的了解了吗?| CSDN 博文精选
  10. 苹果的困境源于优质移动应用的垮台吗?