python小说全站爬虫_起点小说网全站爬虫(Python)
网络文学随互联网的崛起而崛起,在时间日益碎片化的今天,网络文学以其方便快捷的特点适应了人们的娱乐性需求,因而也快速成长一个巨大的市场。娱乐是人们的根本性需求,文化是这个过程中的附属品。要想知道人们关心的是什么?什么又在兴起,哪些题材又在逐渐没落,我们需要从整体去分析。
因此这个爬虫也就应运而生,我们选取了目前国内最大的小说平台——起点网作为数据来源。本爬虫主要是为了爬取起点小说的基本信息(题目、作者、简介等),在写爬虫的过程中,我也碰到了一些有趣的反爬机制,这些小障碍我也会在本文中一并记录下来,希望能够给后来者一些帮助。
架构 \ 包
本爬虫主要是用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)相关推荐
- Python爬虫_某宝网案例
Python爬虫_某宝网案例 一.导入第三方库,确定url,定义headers ,伪装爬虫代码 import requests url = 'https://s.taobao.com/search?q ...
- Python爬虫(6):煎蛋网全站妹子图爬虫
Python爬虫(6):煎蛋网全站妹子图爬虫 上一篇文章中我们抓取了豆瓣图书的数据,如果大家运行成功,并且看到文件夹下的 txt 文件了.是不是有一种刚接触编程,第一次输出Hello world!时的 ...
- python3小说爬虫之起点女生网
修女异世修仙路 目录 一.单文爬取 二.目录爬取 三.代码整合 目录 全文参考:https://blog.csdn.net/c406495762/article/details/105797795 不 ...
- python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...
- python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...
前言: 今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷 ...
- 安卓手机小说阅读器_乐小说阅读器下载手机版-乐小说阅读器app下载安装
乐小说阅读器app,一款非常不错的小说阅读器,这里的小说资源不仅非常的丰富,而且用户们可以免费任意阅读.小说内容非常的优质,阅读界面非常的清爽简洁,无任何广告弹出.喜欢看小说的就下载试试吧! 关于乐小 ...
- python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...
- python展开阅读全文_展开阅读全文 js 爬虫操作
from selenium import webdriver import time import random from bs4 import * browser = webdriver.Chrom ...
- 安卓手机小说阅读器_书城小说阅读器app下载_书城小说阅读器手机版下载
书城小说阅读器是一款智能小说阅读软件,可以智能搜索全网的小说,通过关键字搜索小说,一键轻松阅读小说,感兴趣的朋友快来下载书城小说阅读器吧. 书城小说阅读器app特色 1.内置智能查找.目录查找.关键字 ...
最新文章
- zookeeper入门系列 : 分布式事务
- 程序猿惯用口头禅与内心真实 OS,快来看看你中招没?
- 暴风前员工替冯鑫惋惜,是公司的老白兔员工害了他
- Windows 10版星巴克应用现身官网
- 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式...
- numpy 函数一:linspace
- [深入学习C#]LINQ查询表达式详解(2)——查询表达式的转换
- 《机器学习训练秘籍》中文版58章节 完整开源 吴恩达
- kali中binwalk/foremost/zip2john工具的配合使用
- Unity3d游戏开发用哪个语言更好?
- 我的管理成长与思考 - 那些领导的真相,理解和思考
- 2020全国各地男女身高排行出炉,从数据看南北差异到底有多大?
- svg图片 填充颜色
- 如何正确使用Pandas库提升项目的运行速度?
- 2018吉林CCPC(HDU6555)A.The Fool
- Python 中的 import 语句使用
- TRACY自己学英语的5W三七法则
- PCL 点云DBSCAN聚类算法
- 平板探测器的工作原理及优缺点
- 陀螺财经Value100“以太零”项目交流会
热门文章
- Linux 之父家断电六天:内核更新延期;华为 EMUI 11 用户突破1亿;美国得州最大电力公司申请破产 | 极客头条...
- 下一代数据备份方式会是DNA吗?
- 链表反转的两种实现方法,后一种击败了100%的用户
- 程序员在这些地方敲代码,普通笔记本根本扛不住
- 疫情期间我们与你同在:关爱障碍群体刚需,坚持做无障碍的倡议书
- 程序员躲不掉的“中年危机”
- 为何各家抢滩物联网?
- 蚂蚁金服自研数据库打败Oracle拿下世界第一;三星手机全面退出中国;微软发布Windows 10X双屏系统 | 极客头条...
- Java String 对象,你真的了解了吗?| CSDN 博文精选
- 苹果的困境源于优质移动应用的垮台吗?