Python实现爬取逐浪小说的方法


Posted in Python onJuly 07, 2015

本文实例讲述了Python实现爬取逐浪小说的方法。分享给大家供大家参考。具体分析如下:

本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以自动从网上下载想看的小说到本地,比较方便。最近在学习Python的爬虫,受此启发,突然就想到写一个爬取小说内容的脚本玩玩。于是,通过在逐浪上面分析源代码,找出结构特点之后,写了一个可以爬取逐浪上小说内容的脚本。

具体实现功能如下:输入小说目录页的url之后,脚本会自动分析目录页,提取小说的章节名和章节链接地址。然后再从章节链接地址逐个提取章节内容。现阶段只是将小说从第一章开始,每次提取一章内容,回车之后提取下一章内容。其他网站的结果可能有不同,需要做一定修改。在逐浪测试过正常。

现分享此代码,一是做个记录,方便自己以后回顾。二么也想抛砖引玉,希望各路大神不吝赐教。

#-*-coding:utf8-*-
#!/usr/bin/python
# Python:   2.7.8
# Platform:  Windows
# Program:   Get Novels From Internet
# Author:   wucl
# Description: Get Novels
# Version:   1.0
# History:   2015.5.27 完成目录和url提取
#       2015.5.28 完成目录中正则提取第*章,提取出章节链接并下载。在逐浪测试下载无误。
from bs4 import BeautifulSoup
import urllib2,re
def get_menu(url):
  """Get chapter name and its url"""
  user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
  headers = {'User-Agent':user_agent}
  req = urllib2.Request(url,headers = headers)
  page = urllib2.urlopen(req).read()
  soup = BeautifulSoup(page)
  novel = soup.find_all('title')[0].text.split('_')[0]
  # 提取小说名
  menu = []
  all_text = soup.find_all('a',target="_blank")
  # 提取记载有小说章节名和链接地址的模块
  regex=re.compile(ur'\u7b2c.+\u7ae0')
  # 中文正则匹配第..章,去除不必要的链接
  for title in all_text:
    if re.findall(regex,title.text):
      name = title.text
      x = [name,title['href']]
      menu.append(x)
      # 把记载有小说章节名和链接地址的列表插入列表中
  return menu,novel
def get_chapter(name,url):
  """Get every chapter in menu"""
  html=urllib2.urlopen(url).read()
  soup=BeautifulSoup(html)
  content=soup.find_all('p') # 提取小说正文
  return content[0].text
if __name__=="__main__":
  url=raw_input("""Input the main page's url of the novel in ZhuLang\n    Then Press Enter to Continue\n""")
  if url:
    menu,title=get_menu(url)
    print title,str(len(menu))+'\n   Press Enter To Continue  \n' 
    # 输出获取到的小说名和章节数
    for i in menu:
      chapter=get_chapter(i[0],i[1])
      raw_input()
      print '\n'+i[0]+'\n'    
      print chapter
      print '\n'

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
PyQt5每天必学之拖放事件
Aug 27 Python
深入浅析python 中的匿名函数
May 21 Python
python添加菜单图文讲解
Jun 04 Python
python 整数越界问题详解
Jun 27 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Python判断变量是否是None写法代码实例
Oct 09 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
python妹子图简单爬虫实例
Jul 07 #Python
python操作redis的方法
Jul 07 #Python
python生成IP段的方法
Jul 07 #Python
Python的多态性实例分析
Jul 07 #Python
Python中的urllib模块使用详解
Jul 07 #Python
Python实现图像几何变换
Jul 06 #Python
Python统计日志中每个IP出现次数的方法
Jul 06 #Python
You might like
php设计模式之观察者模式的应用详解
2013/05/21 PHP
php教程之phpize使用方法
2014/02/12 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
JavaScript中的this机制
2016/01/30 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
Ajax基础知识详解
2017/02/17 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
Python实现图片转字符画的示例
2017/08/22 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
Python 列表反转显示的四种方法
2020/11/16 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
生产部经理岗位职责
2013/12/16 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
岗位竞聘书范文
2014/03/31 职场文书
董事长秘书工作职责
2014/06/10 职场文书
生物学专业求职信
2014/07/23 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
《秋思》教学反思
2016/02/23 职场文书