一、前言

2020-04-2日爬虫练习

爬取网站:诗词名句网的四大名著
需求:将四大名著的每一个章节存储到本地
技术路线:
1.requests
2.BeautifulSoup
3.os

二、代码解释

1、最近在学习 数据解析之BeautifulSoup4库 ,所以写这篇爬虫来练练手,巩固知识点。

BeautifulSoup4知识点参考我博文:【爬虫学的好,基础少不了】:数据解析之BeautifulSoup4库

2、其实我也是小白,学习python没多久,这样写代码的好处有两点、一、结构清晰,一个函数负责一个功能,二、能提高代码复用率。因为诗词名句网中每一个章节是一个页面,所以需要重复获取页面的html。
3、由于,特别是爬虫代码都有时效性,如果不能使用记得私聊我~
import requests
from bs4 import BeautifulSoup
import os, timeclass Book:def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36','Referer': 'http://www.shicimingju.com/book/',}# 获取htmldef get_html(self, url):result = requests.get(url=url, headers=self.headers)return BeautifulSoup(result.text, 'lxml')# 获取四本书的url和书名def get_books(self, html):books = {}div = html.findAll("div", class_="book-item")for contents in div:book_name = contents.get_text().replace("\n", "")book_url = 'http://www.shicimingju.com' + contents.a['href']books[book_name] = book_urlreturn books# 获取书目录def get_book_mulu(self,books_html):book_mulu_urls = []mulus = books_html.findAll("div", class_="book-mulu")for mulu in mulus:mulu_herfs = mulu.findAll('a')for mulu_herf in mulu_herfs:mulu_herf = 'http://www.shicimingju.com' + mulu_herf['href']book_mulu_urls.append(mulu_herf)return book_mulu_urls# 获取目录正文内容def book_mulu_content(self, book_mulu_html):book_texts = {}title = book_mulu_html.find("div", class_="card bookmark-list")mulu_title = title.h1.string     # 章节namemulu_contents = book_mulu_html.findAll('div', class_="chapter_content")for text in mulu_contents:text = text.get_text()  # 正文内容book_texts[mulu_title] = textreturn book_texts# 保存到本地def save_book(self, book_texts, book_name):if not os.path.exists(book_name):  # 判断目录存不存在,不存在就创建一个os.makedirs(book_name)for title in book_texts:file_path = book_name + '/' + titlewith open(file_path+'.text', 'a', encoding='utf-8')as f:f.write(book_texts[title])print('【%s】--章节下载成功!' % title)# 功能模块def func(self, url):books = self.get_books(self.get_html(url))for book_name in books:time.sleep(1)for book_mulu_url in self.get_book_mulu(self.get_html(books[book_name])):book_texts = self.book_mulu_content(self.get_html(book_mulu_url))self.save_book(book_texts,book_name)if __name__ == '__main__':data = Book()data.func('http://www.shicimingju.com/bookmark/sidamingzhu.html')


每日爬虫练习:bs4库爬取诗词名句网的四大名著相关推荐

  1. 爬取诗词名句网的三国演义小说

    爬取诗词名句网的三国演义小说 诗词名句网,有很多的诗词和一些课本上古诗的,是一个很好的文学网站,但是我们就来爬取诗词名句网的三国演义小说 第一步我们还是导入要导入的库: import requests ...

  2. 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~

    上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...

  3. 爬虫学习(12):爬取诗词名句网并且下载保存

    用BeautifulSoup爬取并且下载.仅仅用作学习用途哈,不然又侵权了. 效果: 由于我是正在自学爬虫,不是很能找到非常优化的办法,是一名计算机大二学生,代码可能不是很好,还请大神指点,这是我扣扣 ...

  4. python 爬取诗词名句网(包含页面跳转)

    代码,之前一直乱码,经过多番尝试 使用了.encode('ISO-8859-1').decode('utf-8')这个方法 from bs4 import BeautifulSoup import r ...

  5. python爬虫 爬取诗词名句网

    使用requests库,xpath库 import requests import time from lxml import etree# 去请求页面的函数 def request_Header(u ...

  6. Python爬虫实战(02)—— 爬取诗词名句三国演义

    目录 前言 一.准备工作 二.爬取步骤 1. 引入库 2. 发送请求拿到页面 3.定位到章节URL 4.拼接URL拿到章节内容 5.存储各章节内容 完整代码 前言 这次爬虫任务是从诗词名句上爬取< ...

  7. 一起学爬虫——使用xpath库爬取猫眼电影国内票房榜

    之前分享了一篇使用requests库爬取豆瓣电影250的文章,今天继续分享使用xpath爬取猫眼电影热播口碑榜 XPATH语法 XPATH(XML Path Language)是一门用于从XML文件中 ...

  8. 【爬虫】用Python爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具)

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/det ...

  9. 使用Python requests和BeautifulSoup库爬取去哪儿网

    功能说明:爬取去哪儿网城市下面若干条景点详细信息并将数据导入Excel表(使用xlwt库) 爬取去哪儿网的教程参考自 https://blog.csdn.net/gscsd_t/article/det ...

最新文章

  1. 漂亮好用的ASP.NET图表控件 免费的
  2. 日常笔记——思科认证本地域登录
  3. python创建csv文件并写入-Python 读写 CSV
  4. 基于Java的四大开源测试工具
  5. STM32F4 HAL库开发 -- USB U盘
  6. 连号区间数(2013年第四届c/c++ b组第10题)
  7. 【Antlr】Antlr语法设计
  8. 吴恩达深度学习CNN作业:Convolutional Neural Networks: Step by Step
  9. .NET平台及C#面向对象编程
  10. 在eclipse-oxygen-sts中,关于快捷键[CTRL + SHIFT + O]失效的问题
  11. 【论文笔记】(FGSM公式推导)Explaining and Harnessing Adversarial Examples
  12. TeamViewer正版许可证到底多少钱?
  13. Premiere Pro 中的键盘快捷键
  14. 两台计算机传输文件速度,一根网线,两台电脑,超高速传输文件
  15. 带头像的用户显示功能
  16. 【题解】纪中篮球联赛
  17. 印第安人与中国人的关系
  18. IP-Guard应用攻略:如何解决员工违规安装软件的问题
  19. 全息与沙盘的融合,全息沙盘带来全新体验
  20. 什么是发明专利?发明专利查询的方法有哪些?

热门文章

  1. 建立书签链接的html语言,在某文本上建立超级链接的方法是
  2. 遇到台式电脑关不了机该怎么办
  3. 电脑技巧:电脑状态监控神器TrafficMonitor介绍
  4. 20余位大咖与你相约CCF CED中国工程师文化日,详细日程来袭
  5. hadoop mapred-queue-acls 配置
  6. 2023西南民族大学计算机考研信息汇总
  7. tf12: 判断男声女声
  8. PS合成 油管大神rafy A最新51套Photoshop合成教程
  9. Ubuntu16.04 解决屏幕闪烁的问题(暂时)
  10. 伴髓系恶性转化的Shwachman-Diamond综合征患儿的临床特征及基因突变分析