古诗文网中的名著古籍比较多,选取从这个网站上抓。

https://so.gushiwen.cn/guwen/

可以在上面选取任一个古籍,点击打开复制链接,然后在下面代码中替换相应古籍的链接。

下面代码中,抓取的是《西游记》:

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 27 20:14:04 2020@author: zhen chenMIT Licence.Python version: 3.7Description: crawing chinese classical literature from gushiwen.cn"""import requests  # 联系网络的包,a package for requesting from websites
from bs4 import BeautifulSoup # 分析网页数据的包,a package for webstie data analysis
import time
import random# 获取网页信息
def get_url_content(url):headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'}  # 主要是模拟浏览器登录,防止反爬r = requests.get(url, headers=headers, timeout=30)  # 获取网页的内容,并返回给r变量,timeout 为超时时间r.raise_for_status() # 检查返回网页的内容的状态码,200表示成功r.encoding = r.apparent_encoding # 统一编码方式return r.text # 返回网页中的文本内容,数据内容为 r.content# 从网页中找到每一回的链接
def get_url_links(url_head_content):soup = BeautifulSoup(url_head_content, "lxml")  # 解析网页返回内容,lxml 是一个解码方式,效率比较快,被推荐使用links = soup.find('div', class_ = 'bookcont') # 每一回的链接都在类 span 里面links= links.findAll('span')link_list = []for each in links:link_list.append('https://so.gushiwen.cn' + each.a.get('href'))  # 获取每一回的链接,存储到列表里return link_list# 解析出网页中想要的信息,爬虫的关键步骤
def filter_info(chapter_num, url_text):soup = BeautifulSoup(url_text, "lxml")  # 解析网页返回内容,lxml 是一个解码方式,效率比较快,被推荐使用contents = soup.find('div', class_ = 'contson')# 使用 get_text 可以读取网页里面的换行,而 text 不能chapter_title = contents.find('p').get_text() # 第一句话是本回的标题chapter_titel = '第' + str(chapter_num) + '回 ' + chapter_title.lstrip()chapter_content = contents.get_text(separator="\n")  # find 返回的不是列表,不用跟 [0]chapter_content = chapter_content.lstrip()this_chapter = [chapter_titel, chapter_content]return this_chapter# 将每章内容输出到 txt 文档里
def write_txt(string_array):file_address = 'E:/爬虫练习/西游记/'   # txt 存放地址file_name = string_array[0]f = open(file_address+file_name+'.txt', 'w', encoding='utf-8') # 必须跟解码形式,不然有的网页中文内容写不到txt里f.write(string_array[1])f.close()# 主函数
def main():    url = 'https://so.gushiwen.cn/guwen/book_46653FD803893E4FBF8761BEF60CD7D9.aspx' # 古诗文网西游记网址url_head_content = get_url_content(url)  # 获取网页links = get_url_links(url_head_content)  # 获取每一回的链接地址for index, each in enumerate(links):url_link_content = get_url_content(each)  # 获取每一回的网页内容chapter_content = filter_info(index+1, url_link_content) # 解析每一回的网页内容,获取小说文本write_txt(chapter_content)  # 输出小说内容到 txttime.sleep(random.random()*2) # 每抓一个网页休息0~2秒,防止被反爬措施封锁 IPmain()

python 爬虫入门--抓取名著古籍相关推荐

  1. python 爬虫入门--抓取红楼梦小说

    爬虫抓取网页的三个基本步骤: 获取网页 html (用 request 包) 解析网页,找到我们想要的内容(用 beautifulsoup 包等) 输出内容 找到一个在线红楼梦网址:https://w ...

  2. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  3. python抓取网页电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...

    利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...

  4. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  5. python抓取视频违法吗,科学网—【python爬虫】抓取B站视频相关信息(一) - 管金昱的博文...

    昨天我在B站上写了这么一篇文章,但是被他们锁住了.无奈之下我复制到知乎上先保存起来 在这篇名为<三天学会用python进行简单地爬取B站网页视频数据>文章中我主要提到了两点在已知aid的情 ...

  6. Python爬虫采集抓取:Python3.x+Fiddler 采集抓取 APP 数据

    随着移动互联网的市场份额逐步扩大,手机 APP 已经占据我们的生活,以往的数据分析都借助于爬虫采集爬取网页数据进行分析,但是新兴的产品有的只有 APP,并没有网页端这对于想要提取数据的我们就遇到了些问 ...

  7. python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业)

    python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业) 这次就以mapbar为例爬取道路交通拥堵情况 第一步,瓦片标号解析 第二步,拼url,然后下载 第三步,图片拼接 ...

  8. Python爬虫:抓取智联招聘岗位信息和要求(进阶版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  9. python 爬虫 数据抓取的三种方式

    python 爬虫   数据抓取的三种方式 常用抽取网页数据的方式有三种:正则表达式.Beautiful Soup.lxml 1.正则表达式 正则表达式有个很大的缺点是难以构造.可读性差.不易适用未来 ...

最新文章

  1. 自然语言处理发展历程自我总结
  2. 推荐!神经进化才是深度学习未来的发展之路!
  3. php左右值实现无限极分类,基于ThinkPHP的二叉树左右值无限极分类实现
  4. jmeter从mysql取值_Jmeter获取数据库值并作为参数请求(转载)
  5. 百度顶会论文复现(3):视频分类综述
  6. 运维linux脚本实例,Shell脚本使用示例
  7. 抄袭路虎极光多年的陆风X7 终于迎来法院裁定:即刻停止生产
  8. 内存映射和独立存贮器
  9. 如何下载csdn的文章并保存成pdf格式呢?并实现某个博主的全部博文下载?
  10. Github Desktop for macos_zh 汉化
  11. Oracle PL / SQL – INSTEAD OF触发器示例
  12. linux怎么开启8080端口,Linux中如何开启8080端口供外界访问
  13. 注册邮箱验证激活技术
  14. java实用教程第五版_java2实用教程(第5版)重要点及遗漏点(一)
  15. 输入求闰年c语言程序,C语言计算闰年程序
  16. django框架——模型层(下)
  17. 荣耀v40轻奢版和华为nova8的区别 哪个好
  18. 计算机网络-应用层-万维网WWW
  19. Note For Linux By Jes(3)-Linux文件与目录管理
  20. OVS代码结构(by quqi99)

热门文章

  1. vue+eChart实现省份地图
  2. oracle sql语句优化
  3. 富宝长流:菜鸟萌新上班族怎么在网上赚到钱,请看我帮你找到思路
  4. sed的选项及命令详解!
  5. android护眼提醒,安卓手机上怎么设置定时提醒休息的护眼提醒?
  6. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)
  7. 博客园积分与排名升级攻略 //转
  8. 仪器仪表行业分销渠道系统:实现渠道互联网化,与渠道商互利共赢
  9. Ardiuno 太极创客学习记录111
  10. 【usb】winusb 接口设计分析