【代码+数据】Python采集《毛选5》并保存为xhtml文件

栏目: Python · 发布时间: 5年前

内容简介:文章目录《毛泽东选集》第5卷是毛泽东1949年以后著作的选集。这本书的编辑、出版用了近十年的时间,时间贯穿了整个文革。由于特殊原因,这本书在1982年被停止发行,至今也未重新进行出版。

文章目录

一、关于毛选5

《毛泽东选集》第5卷是毛泽东1949年以后著作的选集。这本书的编辑、出版用了近十年的时间,时间贯穿了整个文革。

由于特殊原因,这本书在1982年被停止发行,至今也未重新进行出版。

【代码+数据】Python采集《毛选5》并保存为xhtml文件

在豆瓣网站上,这本书获得了8.8的高分评价,可以说很是值得一看。

本篇文章,我们将会介绍从网站下采集毛选5的内容并保存为xhtml文件,方便后续将其制作为EPUB格式的电子书。

二、目标网站

机缘巧合,笔者在【读典籍】网(http://www.dudj.net) 发现了毛选5的电子版:

【代码+数据】Python采集《毛选5》并保存为xhtml文件

其内容分章节显示在不同的网页上:

【代码+数据】Python采集《毛选5》并保存为xhtml文件

每一章的内容都是独立且纯粹的:

【代码+数据】Python采集《毛选5》并保存为xhtml文件

可以说这个结构很适合我们使用 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文件:

【代码+数据】Python采集《毛选5》并保存为xhtml文件

打开其中一个文件,内容如下图所示:

【代码+数据】Python采集《毛选5》并保存为xhtml文件

这样,我们就采集并保存毛选5的内容成功了,下一步,我们将继续借助Python将这些xhtml文件制作为EPUB格式的电子书,敬请期待!

如需数据,请关注州的先生微信公众号并回复“0016”获取下载地址;

如需完整代码+数据,请访问 https://zmister.com/archives/692.html 获取下载地址;


以上所述就是小编给大家介绍的《【代码+数据】Python采集《毛选5》并保存为xhtml文件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言入门经典

C语言入门经典

霍顿 (Ivor Horton) / 清华大学出版社 / 2008-4-1 / 69.80元

本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。本书集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界范围内广受欢迎,口碑极佳。书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要具备任何编程知识,即可......一起来看看 《C语言入门经典》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器