Python爬取三国演义的实现方法


Posted in Python onSeptember 12, 2016

本文的爬虫教程分为四部:

     1.从哪爬 where

     2.爬什么 what

     3.怎么爬 how

     4.爬了之后信息如何保存 save

一、从哪爬

三国演义

二、爬什么

三国演义全文

三、怎么爬

在Chrome页面打开F12,就可以发现文章内容在节点

<div id="con" class="bookyuanjiao">

只要找到这个节点,然后把内容写入到一个html文件即可。

content = soup.find("div", {"class": "bookyuanjiao", "id": "con"})

四、爬了之后如何保存

主要就是拿到内容,拼接到一个html文件,然后保存下来就可以了。

#!usr/bin/env 
# -*-coding:utf-8 -*-
import urllib2
import os
from bs4 import BeautifulSoup as BS
import locale
import sys
from lxml import etree
import re

reload(sys)
sys.setdefaultencoding('gbk')

sub_folder = os.path.join(os.getcwd(), "sanguoyanyi")
if not os.path.exists(sub_folder):
  os.mkdir(sub_folder)

path = sub_folder

# customize html as head of the articles
input = open(r'0.html', 'r')
head = input.read()

domain = 'http://www.shicimingju.com/book/sanguoyanyi.html'
t = domain.find(r'.html')
new_domain = '/'.join(domain.split("/")[:-2])
first_chapter_url = domain[:t] + "/" + str(1) + '.html'
print first_chapter_url

# Get url if chapter lists
req = urllib2.Request(url=domain)
resp = urllib2.urlopen(req)
html = resp.read()
soup = BS(html, 'lxml')
chapter_list = soup.find("div", {"class": "bookyuanjiao", "id": "mulu"})
sel = etree.HTML(str(chapter_list))
result = sel.xpath('//li/a/@href')

for each_link in result:
  each_chapter_link = new_domain + "/" + each_link
  print each_chapter_link
  req = urllib2.Request(url=each_chapter_link)
  resp = urllib2.urlopen(req)
  html = resp.read()

  soup = BS(html, 'lxml')
  content = soup.find("div", {"class": "bookyuanjiao", "id": "con"})
  title = soup.title.text
  title = title.split(u'_《三国演义》_诗词名句网')[0]

  html = str(content)
  html = head + html + "</body></html>"

  filename = path + "\\" + title + ".html"
  print filename
  # write file
  output = open(filename, 'w')
  output.write(html)
  output.close()

0.html的内容如下

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>

总结

以上就是利用Python爬取三国演义的实现方法,希望对大家学习python能有所帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
使用Python压缩和解压缩zip文件的教程
May 06 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
python3 读取Excel表格中的数据
Oct 16 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
Python3 中sorted() 函数的用法
Mar 24 Python
python如何查看安装了的模块
Jun 23 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
python 读写、创建 文件的方法(必看)
Sep 12 #Python
Python读写Json涉及到中文的处理方法
Sep 12 #Python
详细介绍Python的鸭子类型
Sep 12 #Python
Python 读写文件和file对象的方法(推荐)
Sep 12 #Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 #Python
浅谈python对象数据的读写权限
Sep 12 #Python
python获取list下标及其值的简单方法
Sep 12 #Python
You might like
php&amp;java(三)
2006/10/09 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
javascript indexOf函数使用说明
2008/07/03 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
react-router中的属性详解
2017/06/01 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
用Python输出一个杨辉三角的例子
2014/06/13 Python
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
python数组过滤实现方法
2015/07/27 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python变量不能以数字打头详解
2016/07/06 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
机关办公室岗位职责
2014/04/16 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript
设置IIS Express并发数
2022/07/07 Servers