需要转载的小伙伴转载后请注明转载的地址

需要用到的库

from bs4 import BeautifulSoup

import requests

import time

获取小说的每个章节的名称和章节链接

打开浏览器的开发者工具,查找一个章节:如下图,找到第一章的名称和href(也就是第一章节内容页面的链接),开始写代码

from bs4 import BeautifulSoup

import requests

import time

# 分别导入time、requests、BeautifulSoup库

url = 'http://www.365haoshu.com/Book/Chapter/'

# 链接地址url,这儿url章节链接没全写出来是因为下面获取章节链接时要用到这些url

req = requests.get(url+'List.aspx?NovelId=0326')

# 打开章节页面,

req_bf = BeautifulSoup(req.text,"html.parser")

print(req_bf)

# 将打开的页面以text打印出来

div = req_bf.find_all('div',class_='user-catalog-ul-li')

# 分析页面,所需要的章节名和章节链接是在div标签,属性class为user-catalog-ul-li下

# 找到这个下的内容,并打印

s = []

for d in div:

s.append(d.find('a'))

print(s)

# 获取div下面的a标签下的内容

names=[] # 存储章节名

hrefs=[] # 存储章节链接

for i in s:

names.append(i.find('span').string)

hrefs.append(url + i.get('href'))

# 将所有的章节和章节链接存入的列表中

观察href后的链接和打开章节内容页面的链接是不完全的相同的, 所以要拼接使得浏览器能直接打开章节内容

获取到链接和章节名后打开一个章节获取文本内容;

和获取章节名方法一致,一步一步查找到内容的位置

txt = requests.get(hrefs[0])

div_bf = BeautifulSoup(txt.text,'html.parser')

div = div_bf.find_all('div',class_='container user-reading-online pos-rel')

#print(div)

ps = BeautifulSoup(str(div),"html.parser")

p=ps.find_all('p',class_='p-content')

print(p)

txt=[]

for i in p:

txt.append(i.string+'\n')

print(txt)

获取单一章节完成

接下来整理代码,获取整个小说的内容,代码如下:

# --*-- coding=utf-8 --*--

from bs4 import BeautifulSoup

import requests

import time

class spiderstory(object):

def __init__(self): # 初始化

self.url = 'http://www.365haoshu.com/Book/Chapter/'

self.names = [] # 存放章节名

self.hrefs = [] # 存放章节链接

def get_urlAndName(self):

'''获取章节名和章节链接'''

req = requests.get(url=self.url+'List.aspx?NovelId=0326') # 获取章节目录页面

time.sleep(1) # 等待1秒

div_bf = BeautifulSoup(req.text,"html.parser") # req后面跟text和html都行

div = div_bf.find_all('div', class_='user-catalog-ul-li') # 查找内容,标签为div,属性为class='user-catalog-ul-li'

a_bf = BeautifulSoup(str(div))

a = a_bf.find_all('a') # # 查找内容,标签为a

for i in a:

self.names.append(i.find('span').string) # 获取内容直接string就行

self.hrefs.append(self.url + i.get('href')) # 获取链接

def get_text(self,url):

'''获取章节内容'''

req = requests.get(url=url)

div_bf = BeautifulSoup(req.text,"html.parser")

div = div_bf.find_all('div', class_='container user-reading-online pos-rel') # 查找内容

ps = BeautifulSoup(str(div), "html.parser")

p = ps.find_all('p', class_='p-content')

text = []

for each in p:

text.append(each.string)

print(text)

return text # 将获得的内容返回

def writer(self, name, path, text):

'''写入text文档中'''

with open(path, 'a', encoding='utf-8') as f:

f.write(name + '\n')

f.writelines(text)

f.write('\n\n')

if __name__ == "__main__": # 运行入口

s = spiderstory()

s.get_urlAndName()

le = len(s.names)

for i in range(le): # 利用for循环获得所有的内容

name = s.names[i]

text = str(s.get_text(s.hrefs[i]))

s.writer(name,"我以月夜寄相思.txt",text)

print('下载完毕!!!')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python 大智慧365 数据格式_Python爬取365好书中小说代码实例相关推荐

  1. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  2. python爬虫图片实例-Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  3. Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  4. python爬虫好友图片_Python爬取所有微信好友头像,制作微信好友图片墙

    今天咱就试试怎么爬取微信列表中所有好友的头像,并做成一张图片墙,代码不长,60 行就可以搞定. 核心是利用三个库:wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinsta ...

  5. python爬虫公众号音频源代码_python爬取音频下载的示例代码

    抓取"xmly"鬼故事音频 import json # 在这个url,音频链接为JSON动态生成,所以用到了json模块 import requests headers = { & ...

  6. python 制作网站教程_Python爬取网站博客教程并制作成PDF

    要把教程变成PDF有三步: 1.先生成空html,爬取每一篇教程放进一个新生成的div,这样就生成了包含所有教程的html文件(BeautifulSoup) 2.将html转换成pdf(wkhtmlt ...

  7. python爬取房源数据_python爬取安居客二手房网站数据(实例讲解)

    是小打小闹 哈哈,现在开始正式进行爬虫书写首先,需要分析一下要爬取的网站的结构:作为一名河南的学生,那就看看郑州的二手房信息吧! 在上面这个页面中,我们可以看到一条条的房源信息,从中我们发现了什么,发 ...

  8. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  9. python最新官网图片_python爬取福利网站图片完整代码

    存起来 自己学习... import requests,bs4,re,os,threading class MeiNvTu: def __init__(self): self.url_main='ht ...

最新文章

  1. 手把手教你如何新建scrapy爬虫框架的第一个项目(下)
  2. nodemanager不能正常关闭_Java虚拟机关闭钩子(Shutdown hook)
  3. 朱宁:70%散户跑不赢大盘?因为机构利用了他们的错误
  4. 吴晓然:实时通信需要Codec和网络模块结合
  5. 什么是用户账户?-联科教育
  6. java stream 原理
  7. 数据库练习题(一)创建表格并做相应的查询
  8. RTP/RTCP/RTSP/SIP/SDP简介
  9. 并查集(2)-按秩合并和路径压缩
  10. 分布的距离(Distance of Distributions)
  11. Scrum团队: I-型人 vs T- 型人
  12. matlab差值函数库,matlab教程之排序插值函数等
  13. testin云测操作步骤
  14. TS高级类型 Record、Pick、Partial、Required、Readonly、Exclude、Extract、Omit、NonNullable 使用
  15. 黑马程序员视频教程学习mybatis框架常用注释SQL语句学习笔记?
  16. 企业上云很简单,细数华为云弹性云服务器ECS的多项优势
  17. centos7.6 修改ssh登陆端口和密码
  18. 深圳入户办理流程大致是怎样的?
  19. vue比较完整的方法介绍 和获取事件对象
  20. VS2022 创建webservice服务

热门文章

  1. 面向对象设计5大原则
  2. Glibc堆块的向前向后合并与unlink原理机制探究
  3. 闲聊之π和e到底是个啥
  4. 投资新“鸡”遇,金鸡达人DAPP养鸡游戏震撼来袭
  5. 不平衡数据集处理办法
  6. 首站告捷 | GBASE数据库中华行在穗城圆满落幕
  7. 作为前端你拿什么证明网站体验?
  8. Pytorch深度学习踩坑记录
  9. 解决Adobe Acrobat打开pdf文件时,Windows任务栏是照片图标
  10. Markdown文档编写规则:标点符号