内容简介:文章目录《毛泽东选集》第5卷是毛泽东1949年以后著作的选集。这本书的编辑、出版用了近十年的时间,时间贯穿了整个文革。由于特殊原因,这本书在1982年被停止发行,至今也未重新进行出版。
文章目录
一、关于毛选5
《毛泽东选集》第5卷是毛泽东1949年以后著作的选集。这本书的编辑、出版用了近十年的时间,时间贯穿了整个文革。
由于特殊原因,这本书在1982年被停止发行,至今也未重新进行出版。
在豆瓣网站上,这本书获得了8.8的高分评价,可以说很是值得一看。
本篇文章,我们将会介绍从网站下采集毛选5的内容并保存为xhtml文件,方便后续将其制作为EPUB格式的电子书。
二、目标网站
机缘巧合,笔者在【读典籍】网(http://www.dudj.net) 发现了毛选5的电子版:
其内容分章节显示在不同的网页上:
每一章的内容都是独立且纯粹的:
可以说这个结构很适合我们使用 Python 编写代码对文章内容进行采集。
三、采集代码
根据网站网页的特点,我们首先梳理一下采集的思路:
- 1、访问目录页获取目录所有章节的链接;
- 2、遍历获取的所有章节链接并请求,获取每一章的内容;
- 3、新建xhtml文件,将内容写入xhtml文件中;
接下来,开始我们的代码编写。
首先引入相关的模块:
# coding:utf-8 # 州的先生 import requests from bs4 import BeautifulSoup import time import random
根据网站的具体情况,设置一个header字典作为请求头:
headers = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding':'gzip, deflate, sdch', 'Accept-Language':'zh-CN,zh;q=0.8', 'Cache-Control':'max-age=0', 'Connection':'keep-alive', 'Host':'www.dudj.net', 'If-Modified-Since':'Sat, 28 Oct 2017 14:18:10 GMT', 'If-None-Match':"13c16e2-739a-55c9c1335c87a", 'Referer':'http://www.dudj.net/hongsejingdian/53/', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', }
请求目录页并解析每一章节的链接:
url = 'http://www.dudj.net/hongsejingdian/53/' wbdata = requests.get(url,headers=headers) soup = BeautifulSoup(wbdata.content,'lxml') # print(soup) contents = soup.select('table')[1] contents_link = contents.select('a') link_list = [] for link in contents_link: link_name = link.get_text() link_href = link.get('href') # print(link_name,link_href) link_list.append(link_href)
link_list列表中就是所有章节的链接,我们对每一个链接再次进行请求,并解析响应内容保存到文本文件中:
curl = 'http://www.dudj.net'+link contentdata = requests.get(curl,headers=headers) csoup = BeautifulSoup(contentdata.content,'lxml') ctitle = csoup.select_one('div.atitle > h2').get_text() ccontent = csoup.select('div.zw > p') print(ctitle) c_no = ctitle.split('、')[0] c_name = ''.join(ctitle.split('、')[1:]) # print(c_no,c_name) if len(c_no) ==1: c_no = '0' + c_no with open(c_no+c_name+'.xhtml','a+',encoding='utf-8') as files: files.write('''<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link href="../Styles/Font_Style.css" type="text/css" rel="stylesheet"/> <link href="../Styles/Main_Style.css" type="text/css" rel="stylesheet"/> </head> <body> <div style="text-align: right;"><img alt="logo" src="../Images/logo.png"/></div> ''') for c in ccontent: files.writelines("<p>{}</p>".format(c.get_text())) files.write(''' </body> </html> ''') print('写入完成')
四、结果
最后代码运行完毕,当前目录下就会多出71个xhml文件:
打开其中一个文件,内容如下图所示:
这样,我们就采集并保存毛选5的内容成功了,下一步,我们将继续借助Python将这些xhtml文件制作为EPUB格式的电子书,敬请期待!
如需数据,请关注州的先生微信公众号并回复“0016”获取下载地址;
如需完整代码+数据,请访问 https://zmister.com/archives/692.html 获取下载地址;
以上所述就是小编给大家介绍的《【代码+数据】Python采集《毛选5》并保存为xhtml文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 保存和恢复模型
- Android 文件保存
- 通过按钮单击保存PhpSpreadSheet
- javascript – Backbone.js – 在上一个保存前保存模型POST(创建)而不是PUT(更新)请求时出现问题
- 使用二进制保存用户状态
- dataframe 保存csv 中文编码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。