废话不多说,直接进入正题。

今天我要爬取的网站是起点中文网,内容是一部小说。

首先是引入库

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爬虫之小说爬取相关推荐

  1. Python爬虫--笔趣阁小说爬取

    Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...

  2. Python网络爬虫(九):爬取顶点小说网站全部小说,并存入MongoDB

    前言:本篇博客将爬取顶点小说网站全部小说.涉及到的问题有:Scrapy架构.断点续传问题.Mongodb数据库相关操作. 背景: Python版本:Anaconda3 运行平台:Windows IDE ...

  3. python爬虫影评_Python爬虫(二十)_动态爬取影评信息

    本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...

  4. python爬虫--小说爬取

    requests+bs4模块–简单爬虫实例–小说爬取 文章目录 section1:声明 section2:想法 section3:下载链接分析: section4:代码编写 1.导包 2.构建请求头 ...

  5. python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据

    python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...

  6. python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...

    本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...

  7. Python爬虫层层递进,从爬取一章小说到爬取全站小说!

    很多好看的小说只能看不能下载,教你怎么爬取一个网站的所有小说 知识点: requests xpath 全站小说爬取思路 开发环境: 版 本:anaconda5.2.0(python3.6.5) 编辑器 ...

  8. python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕

    原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...

  9. Python爬虫开源项目代码(爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网 等等)...

    文章目录 1.简介 2.开源项目Github 2.1.WechatSogou [1]– 微信公众号爬虫 2.2.DouBanSpider [2]– 豆瓣读书爬虫 2.3.zhihu_spider [3 ...

  10. Python爬虫开源项目代码(爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网 等等)

    文章目录 1.简介 2.开源项目Github 2.1.WechatSogou [1]– 微信公众号爬虫 2.2.DouBanSpider [2]– 豆瓣读书爬虫 2.3.zhihu_spider [3 ...

最新文章

  1. 软件定义的数据中心-【软件和信息服务】2012.11
  2. python网络通信协议_Python网络概述:协议与体系结构的运用
  3. P3586-[POI2015]LOG【线段树】
  4. ubuntu下安装、卸载软件
  5. php5.3降5.2,php5.3降级为5.2
  6. Linux下C++开发系列(一)序——我是如何开始linux下C++开发的
  7. 小书匠编辑器使用手册
  8. linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
  9. 前端必知必会的技术体系,再也不担心前端内卷了
  10. 达尔豪斯大学 计算机专业排名,加拿大留学计算机专业排名
  11. 单细胞转录组测序和空间转录组学
  12. Vue2组件通信方式
  13. QScrollArea 动态添加控件问题
  14. JavaScript 学习笔记 p61 - 69
  15. 测测你的眼睛对色差的辨识度?抱歉我开挂了……【JavaScript脚本实现找色差小游戏自动刷关】
  16. pytorch中的collate_fn 是什么作用
  17. 行星碰撞(C语言实现)
  18. 微信小程序开发(原生和uniapp)DOM标签对比介绍
  19. JSP实验-简单页面设计
  20. 2020年燃料电池行业研究及产业链梳理

热门文章

  1. nginx 开启gzip压缩
  2. 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
  3. Ubuntu查看主机名和修改主机名
  4. linux dev queue xmit,dev_queue_xmi函数详解
  5. display: flex以及flex-direction,justify-content,align-items
  6. 用浏览器收藏夹的书签保存javascript的简单脚本
  7. Linux中curl命令详解
  8. 损失函数——均方误差(Mean Squared Error,MSE)
  9. 彻底了解 suid, sgid ,sticky权限
  10. Revit 二次开发前景