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 urlopen()函数 示例分享
Jun 12 Python
Python日志模块logging基本用法分析
Aug 23 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
深入浅析Python中的迭代器
Jun 04 Python
python交易记录链的实现过程详解
Jul 03 Python
python画图把时间作为横坐标的方法
Jul 07 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
Python接口自动化判断元素原理解析
Feb 24 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
Python如何对齐字符串
Jul 30 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
python中添加模块导入路径的方法
Feb 03 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
无线电广播的开始
2002/01/30 无线电
杏林同学录(四)
2006/10/09 PHP
8个PHP数组面试题
2015/06/23 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
Python常用的json标准库
2019/02/19 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
python3 re返回形式总结
2020/11/20 Python
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
大学班级学风建设方案
2014/05/01 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
获奖感言怎么写
2015/07/31 职场文书
《春酒》教学反思
2016/02/22 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS