前言

最近在看一本讲爬虫的书,这里尝试着做一个实战。现在的境界相当于,是已经迈过门槛,走到门口,学会了小手枪的使用,愉悦,并且到处瞄准尝试,三天一线。以后的路可能就是从广度和深度来扩展了吧。除了这种射击模式,还有其他的射击模式需要学习,不止手中的这把枪,还有其他枪需要了解和使用。

思路

先抓大,再抓小。然后正则过滤,多线程爬取。

采用广度搜索的方法爬取。

嵌套

练习

目标url:https://www.kanunu8.com/book2/10748/index.html

1. 抓取文章链接


首先要做的就是判断我们抓取的部分是那些。这里可以看到其中所有的章节都是被tbody这个标签来包裹的,那么我们就先把这一部分弄出来。

1.1 抓大的部分

导入我们需要的包

import re
import requests
import os
from multiprocessing.dummy import Pool

然后抓取

import requests
import os
from multiprocessing.dummy import Poolhtml=requests.get("https://www.kanunu8.com/book2/10748/index.html").content.decode('gb2312')
html_ser=re.findall("tbody>(.*?)</tbody",html,re.S).group(1)

这里有一个为什么要使用gb2312这个编码格式。

因为他网站charset用了这个,so。

由于这里没有找到一个合适的唯一截取点,所以使用findall的方式来找

import re
import requests
import os
from multiprocessing.dummy import Pool
import timehtml=requests.get("https://www.kanunu8.com/book2/10748/index.html").content.decode('gb2312')
html_ser=re.findall("tbody>(.*?)</tbody",html,re.S)
for i in html_ser:if re.search("第一夜",i,re.S)!=None:html_sers=i

1.2 筛选出小的部分

使用findall()来获取所有的href链接。
然后将其写成函数

def get_href():html=requests.get("https://www.kanunu8.com/book2/10748/index.html").content.decode('gb2312')html_ser=re.findall("tbody>(.*?)</tbody",html,re.S)for i in html_ser:if re.search("第一夜",i,re.S)!=None:html_sers=is=re.findall('href="(.*?)"',html_sers,re.S)lst=[]for i in s:lst.append("https://www.kanunu8.com/book2/10748/"+i)return lst

2.文章爬取

找到了href之后,那么我们就可以写我们的单个文章的爬取了。

def ends(href):html=requests.get(href).content.decode('gbk')title=re.search('<font color="#dc143c">(.*?)</font',html,re.S).group(1)text_block=re.search('<p>(.*?)</p>',html,re.S).group(1)text_block=text_block.replace('<br>',"")save(title,text_block)

将我们爬好的数据写入txt

def save(title,text):with open(os.path.join('从你的全世界路过',title+'.txt'),'w',encoding="utf-8") as f:f.write(text)

3. 开启多线程

href=get_href()
print (href)
pool=Pool(5)
pool.map(ends,href)

4. 最终效果

爬虫实战——爬取小说《从你的全世界路过》相关推荐

  1. python爬虫实战-爬取小说

    今天做一个爬虫练手的小实战:爬取顶点小说网的小说,实现下载到本地(虽然网站上本来就可以下载,不过还是自己写代码来有成就感嘛!) 爬取网站 进入官网后,点击元尊,就爬取这本书了. 我们先把整个网页爬下来 ...

  2. node 爬虫 实战 - 爬取拉勾网职位数据

    node 爬虫 实战 - 爬取拉勾网职位数据,主要想把数据用于大数据学习,到时候大数据分析可以自己分析一下职位的情况,和比较一些我现在的职位在深圳乃至全国的开发人员水平. 涉及到的技术栈:node.j ...

  3. Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)

    Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...

  4. python爬虫实战---爬取大众点评评论

    python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  5. python爬虫实战-爬取视频网站下载视频至本地(selenium)

    #python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...

  6. python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述

    http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...

  7. Scrapy 爬虫实战-爬取字幕库

    Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...

  8. python爬取小说项目概述_Python实战项目网络爬虫 之 爬取小说吧小说正文

    本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 ...

  9. python爬虫爬取歌曲_python爬虫实战:爬取全站小说排行榜

    喜欢看小说的骚年们都知道,总是有一些小说让人耳目一新,不管是仙侠还是玄幻,前面更了几十章就成功圈了一大波粉丝,成功攀上飙升榜,热门榜等各种榜,扔几个栗子出来: 新笔趣阁是广大书友最值得收藏的网络小说阅 ...

最新文章

  1. Velocity判断空的方法
  2. 统治世界的十大排序算法!
  3. java遍历两个日期_java 已知两个日期,遍历出两个日期之间所有的日期,重点是::包括第一个日期!!...
  4. 在虚拟机中温习DOS
  5. [scala-spark]3. 变量 数据类型 分支与循环
  6. node sqlite 插入数据_使用 Sequelize 操作 Sqlite3 数据库
  7. linux mysql timestamp_MYSQL中TIMESTAMP类型的使用
  8. 怎么下载完整的python_怎么下载python并安装
  9. Mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围
  10. Android笔记 隐式意图vs显示意图+隐式意图打开短信应用demo
  11. flask-mail异步发送邮件_Python爬虫系列:用邮件来通知爬虫异常状况
  12. onenote快捷键_onenote链接系列:链接笔记如何产生?与插入链接的区别
  13. atitit.md5算法的原理 与 总结
  14. Document Star证件照大师升级版 for Mac(支持ps2021)
  15. c语言整人小程序格式,【C语言】整人小程序
  16. php注册登录描述,基于PHP实现用户登录注册功能的详细教程
  17. python实现npy格式文件转换为txt文件
  18. B站弹幕姬,弹幕礼物感谢,关注感谢,自动回复,房管工具,房管助手,基于java
  19. SwfObjects在页面中嵌入flash(SWF)
  20. 【Linux】调节屏幕亮度

热门文章

  1. 人均负债12万,90后为何会这么穷?
  2. c语言程序实践感受心得,C语言实践心得体会
  3. 多态是什么 父类如何调用子类的方法(美团面试)
  4. 统计中的f检验和t检验的区别
  5. 12-属性动画源码分析
  6. 5月6日—5月9日三年级课程新
  7. hashmap与concurrenthashmap源码解析
  8. 2022世界燕窝展|上海滋补品展|虫草、海参展谈卖货,还是卖品牌?不再简单。
  9. Ranklib部分源码分析
  10. Ubuntu16.04 安装 ROS Kinetic