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实现测试磁盘性能的方法
Mar 12 Python
浅谈Python单向链表的实现
Dec 24 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
在python中bool函数的取值方法
Nov 01 Python
python实现学员管理系统
Feb 26 Python
python定位xpath 节点位置的方法
Aug 27 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Python计算公交发车时间的完整代码
Feb 12 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
python绘制汉诺塔
Mar 01 Python
Python中time与datetime模块使用方法详解
Mar 31 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
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
理解JavaScript原型链
2016/10/25 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python私有属性和方法实例分析
2015/01/15 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Python如何在DataFrame增加数值
2020/02/14 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
酒店实习个人鉴定
2013/12/07 职场文书
家长给老师的道歉信
2014/01/13 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
消防安全责任书
2014/04/14 职场文书
优秀班组长事迹
2014/05/31 职场文书
个人投资合作协议书
2014/10/12 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
团员个人年度总结
2015/02/26 职场文书
焦点访谈观后感
2015/06/11 职场文书
《三国志》赏析
2019/08/27 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书