python晋江爬虫_python爬虫之小说爬取
废话不多说,直接进入正题。
今天我要爬取的网站是起点中文网,内容是一部小说。
首先是引入库
from urllib.request importurlopenfrom bs4 import BeautifulSoup
然后将网址赋值
html=urlopen("http://read.qidian.com/chapter/dVQvL2RfE4I1/hJBflakKUDMex0RJOkJclQ2.html") //小说的第一章的网址
bsObj=BeautifulSoup(html) //创建beautifulsoup对象
首先尝试爬取该页的小说内容
firstChapter=bsObj.find("div",{"class","read-content"}) //find方法是beautifulsoup对象拥有的函数,print (firstChapter.read_text())
find方法也可以和正则表达式搭配使用,并且多用于图片,视频等资源的爬取
由于本次爬取内容全在一个class属性值为read-content的盒子中,所以采用了find方法,如果该网页中,文字被放在多个盒子里,则应采用findAll方法,并且返回值为一个集合,需要用循环遍历输出。
将代码整合运行,发现可以实现文章的爬取,但是现在的问题是,爬取了该小说的一章,那么,往后的几章该如何爬取呢?
由前面步骤可以得出,只要得知下一章的网址,即可进行爬取。首先,将打印文字的部分封装为函数,那么,每次取得新的地址,即可打印出对应文本
defwriteNovel(html):
bsObj=BeautifulSoup(html)
chapter=bsObj.find("div",{"class","read-content"})print (chapter.get_text())
现在的问题是如何爬取下一章的网址,观察网页结构可得知,下一章的按钮实质是一个id为j_chapterNext的a标签,那么,可由这个标签获得下一章的网址
重新包装函数,整理得:
from urllib.request import urlopen
from bs4 import BeautifulSoup
def writeNovel(html):
bsObj=BeautifulSoup(html)
chapter=bsObj.find("div",{"class","read-content"})
print (chapter.get_text())
bsoup=bsObj.find("",{"id":"j_chapterNext"})
html2="http:"+bsoup.get('href')+".html"
return (urlopen(html2))
html=urlopen("http://read.qidian.com/chapter/dVQvL2RfE4I1/hJBflakKUDMex0RJOkJclQ2.html")
i=1
while(i<10):
html=writeNovel(html)
i=i+1
将文本写入text文件中
from urllib.request importurlopenfrom bs4 importBeautifulSoupdefwriteNovel(html):
bsObj=BeautifulSoup(html)
chapter=bsObj.find("div",{"class","read-content"})print(chapter.get_text())
fo=open("novel.text","a")
fo.write(chapter.get_text())
fo.close
bsoup=bsObj.find("",{"id":"j_chapterNext"})
html2="http:"+bsoup.get('href')+".html"
return(urlopen(html2))
html=urlopen("http://read.qidian.com/chapter/dVQvL2RfE4I1/hJBflakKUDMex0RJOkJclQ2.html")
i=1
while(i<8):
html=writeNovel(html)
i=i+1
python晋江爬虫_python爬虫之小说爬取相关推荐
- Python爬虫--笔趣阁小说爬取
Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...
- Python网络爬虫(九):爬取顶点小说网站全部小说,并存入MongoDB
前言:本篇博客将爬取顶点小说网站全部小说.涉及到的问题有:Scrapy架构.断点续传问题.Mongodb数据库相关操作. 背景: Python版本:Anaconda3 运行平台:Windows IDE ...
- python爬虫影评_Python爬虫(二十)_动态爬取影评信息
本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...
- python爬虫--小说爬取
requests+bs4模块–简单爬虫实例–小说爬取 文章目录 section1:声明 section2:想法 section3:下载链接分析: section4:代码编写 1.导包 2.构建请求头 ...
- python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据
python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...
- python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...
本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...
- Python爬虫层层递进,从爬取一章小说到爬取全站小说!
很多好看的小说只能看不能下载,教你怎么爬取一个网站的所有小说 知识点: requests xpath 全站小说爬取思路 开发环境: 版 本:anaconda5.2.0(python3.6.5) 编辑器 ...
- python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕
原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...
- Python爬虫开源项目代码(爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网 等等)...
文章目录 1.简介 2.开源项目Github 2.1.WechatSogou [1]– 微信公众号爬虫 2.2.DouBanSpider [2]– 豆瓣读书爬虫 2.3.zhihu_spider [3 ...
- Python爬虫开源项目代码(爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网 等等)
文章目录 1.简介 2.开源项目Github 2.1.WechatSogou [1]– 微信公众号爬虫 2.2.DouBanSpider [2]– 豆瓣读书爬虫 2.3.zhihu_spider [3 ...
最新文章
- 软件定义的数据中心-【软件和信息服务】2012.11
- python网络通信协议_Python网络概述:协议与体系结构的运用
- P3586-[POI2015]LOG【线段树】
- ubuntu下安装、卸载软件
- php5.3降5.2,php5.3降级为5.2
- Linux下C++开发系列(一)序——我是如何开始linux下C++开发的
- 小书匠编辑器使用手册
- linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
- 前端必知必会的技术体系,再也不担心前端内卷了
- 达尔豪斯大学 计算机专业排名,加拿大留学计算机专业排名
- 单细胞转录组测序和空间转录组学
- Vue2组件通信方式
- QScrollArea 动态添加控件问题
- JavaScript 学习笔记 p61 - 69
- 测测你的眼睛对色差的辨识度?抱歉我开挂了……【JavaScript脚本实现找色差小游戏自动刷关】
- pytorch中的collate_fn 是什么作用
- 行星碰撞(C语言实现)
- 微信小程序开发(原生和uniapp)DOM标签对比介绍
- JSP实验-简单页面设计
- 2020年燃料电池行业研究及产业链梳理
热门文章
- nginx 开启gzip压缩
- 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
- Ubuntu查看主机名和修改主机名
- linux dev queue xmit,dev_queue_xmi函数详解
- display: flex以及flex-direction,justify-content,align-items
- 用浏览器收藏夹的书签保存javascript的简单脚本
- Linux中curl命令详解
- 损失函数——均方误差(Mean Squared Error,MSE)
- 彻底了解 suid, sgid ,sticky权限
- Revit 二次开发前景