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单链表实现代码实例
Nov 21 Python
Python中关于使用模块的基础知识
May 24 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python实现的redis分布式锁功能示例
May 29 Python
python对象与json相互转换的方法
May 07 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
python中的时区问题
Jan 14 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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中定时计划任务的实现原理
2013/01/08 PHP
浅谈php扩展imagick
2014/06/02 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
js去除浏览器默认底图的方法
2015/06/08 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
Python操作CouchDB数据库简单示例
2015/03/10 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python中方法链的使用方法
2016/02/23 Python
python获取Pandas列名的几种方法
2019/08/07 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python3 读取Word文件方式
2020/02/13 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
孝老爱亲模范事迹材料
2014/05/25 职场文书
教研处工作方案
2014/05/26 职场文书
小学生差生评语
2014/12/29 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL