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 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Django学习之文件上传与下载
Oct 06 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
python查看矩阵的行列号以及维数方式
May 22 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
python实现自动清理重复文件
Aug 24 Python
python全栈开发语法总结
Nov 22 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
用python批量移动文件
Jan 14 Python
python - asyncio异步编程
Apr 06 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
用python制作个音乐下载器
2021/01/30 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
机电专业毕业生求职信
2013/10/27 职场文书
班级聚会策划书
2014/01/16 职场文书
工作睡觉检讨书
2014/02/25 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
安全责任协议书
2014/04/21 职场文书
优秀教师个人总结
2015/02/11 职场文书
国庆阅兵观后感
2015/06/15 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书