import re
from time import sleepimport requests
from bs4 import BeautifulSoup# 获取书籍名字和进入目录的链接
def get_book():# 获取网页url = 'http://www.shicimingju.com/book/'html = requests.get(url).text# 利用BeautifulSoup分析提取网页内容soup = BeautifulSoup(html, 'lxml')bookmark_list = soup.find('div', class_='bookmark-list')li_list = bookmark_list.find_all('li')# 获取想要的书籍的名字和进入目录的链接,并生成字典datas = []for li in li_list:book_href = 'http://www.shicimingju.com' + li.find('a')['href']book_name = li.text.replace('\n', '')reg = r'\d+、(.*)'book_name = re.findall(reg, book_name)[0]dict1 = {'href': book_href,'book_name': book_name}datas.append(dict1)return datas
# 获取目录信息,进入内容的链接
def get_mulu_detail(urls):# 获取目录网页信息html = requests.get(urls).text# 分析网页soup = BeautifulSoup(html, 'lxml')book_mulu = soup.find('div', class_='book-mulu')li_list = book_mulu.find_all('li')# 得到进入内容的链接detail_list = []for li in li_list:li_href = 'http://www.shicimingju.com' + li.find('a')['href']detail_list.append(li_href)return detail_list
# 爬取书籍内容
def get_content(urls):content = []for url in urls:# 获取网页信息html = requests.get(url).text# 分析网页并得到内容soup = BeautifulSoup(html, 'lxml')container = soup.find('div', class_='www-main-container')container = container.text.replace('\n', '').replace('\xa0', '')content.append(container)return content
#将内容保存到每个对应的文件中,文件的名字用 ‘书名+.txt’ 来命名
def save_books(contents, book_name):filename = book_name + '.txt'for content in contents:with open(filename, 'a', encoding='utf-8') as f:f.write(content)
#代码在当前环境下运行
def main():datas = get_book()for data in datas:book_href = data['href']book_name = data['book_name']sleep(2)detail_href = get_mulu_detail(book_href)sleep(2)contents = get_content(detail_href)sleep(2)save_books(contents, book_name)if __name__ == '__main__':main()

# 最后整理代码如下

import re
from time import sleepimport requests
from bs4 import BeautifulSoupdef get_book():url = 'http://www.shicimingju.com/book/'html = requests.get(url).text# print(html)soup = BeautifulSoup(html, 'lxml')bookmark_list = soup.find('div', class_='bookmark-list')li_list = bookmark_list.find_all('li')datas = []for li in li_list:book_href = 'http://www.shicimingju.com' + li.find('a')['href']book_name = li.text.replace('\n', '')reg = r'\d+、(.*)'book_name = re.findall(reg, book_name)[0]dict1 = {'href': book_href,'book_name': book_name}datas.append(dict1)return datasdef get_mulu_detail(urls):html = requests.get(urls).text# print(html)soup = BeautifulSoup(html, 'lxml')book_mulu = soup.find('div', class_='book-mulu')li_list = book_mulu.find_all('li')detail_list = []for li in li_list:li_href = 'http://www.shicimingju.com' + li.find('a')['href']detail_list.append(li_href)return detail_listdef get_content(urls):content = []for url in urls:html = requests.get(url).text# print(html)soup = BeautifulSoup(html, 'lxml')container = soup.find('div', class_='www-main-container')container = container.text.replace('\n', '').replace('\xa0', '')content.append(container)return contentdef save_books(contents, book_name):filename = book_name + '.txt'for content in contents:with open(filename, 'a', encoding='utf-8') as f:f.write(content)def main():datas = get_book()for data in datas:book_href = data['href']book_name = data['book_name']sleep(2)detail_href = get_mulu_detail(book_href)sleep(2)contents = get_content(detail_href)sleep(2)save_books(contents, book_name)if __name__ == '__main__':main()

python爬虫 爬取史诗典籍相关推荐

  1. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  2. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  3. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么

    在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...

  4. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

  5. python网易云_用python爬虫爬取网易云音乐

    标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...

  6. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  7. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

    认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  8. 运用Python爬虫爬取一个美女网址,爬取美女图

    运用Python爬虫爬取一个美女网址,爬取美女图 要运用到的python技术: 导入库 1.request 发送请求,从服务器获取数据 2.BeautifulSoup 用来解析整个网页的源代码 imp ...

  9. Python爬虫|爬取喜马拉雅音频

    "GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...

最新文章

  1. python 生命之花_python股票用什么电脑配置:贵州合力股票价格多少钱_XAC配资之家...
  2. 【Treap】bzoj1588-HNOI2002营业额统计
  3. 7 种 Javascript 常用设计模式学习笔记
  4. linux shell 读取文件指定单行 多行 连续行 倒数几行
  5. struts2实现拦截器的方法
  6. 【疑问】SD更新凭证流
  7. 【测试点4】基础实验4-2.8 部落 (25 分)
  8. 新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新
  9. Mybatis源码分析开篇
  10. 百度之星大赛启动,聚焦目标检测,总奖池11.2万!
  11. [单选题]对下面的表达式描述正确的是: (T/t)(M/m)
  12. 牛逼!IDEA不愧为神器,结合Groovy脚本,简直天下无敌!
  13. sql server database mail
  14. 【CNN回归预测】基于matlab鲸鱼算法优化CNN回归预测【含Matlab源码 1453期】
  15. 美图秀秀各插件适用场景
  16. 你知道什么是三层架构吗?
  17. 我理解的MOOC的重要性
  18. 解密Android7.0 8.0进程保活与拉活的实现方式 如何才能让APP常驻内存 躲避系统的追杀
  19. 盘点现在福利多、干货多的前端公众号
  20. React生命周期介绍

热门文章

  1. Java循环输入5个数并输出最值
  2. 科技艺术:新专业如何面向未来
  3. 求教 | SQL的count()函数里居然能加两个参数
  4. 解决谷歌浏览器(chrome)无法访问一些特殊端口地址的问题
  5. OWASP A4 Insecure Design(不安全的设计)
  6. 关闭U盘自动播放功能
  7. 绝地求生登录计算机需要授权,绝地求生国服第三方授权登录异常解决方法 绝地求生国服授权登录错误怎么办...
  8. 日立服务器显示屏哪里买,不知道买什么面板的显示器?看完这篇文章你就懂了...
  9. [附源码]计算机毕业设计Node.js零食网站设计(程序+LW)
  10. WPF 网易云音乐PC端