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 15 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
Django实现表单验证
Sep 08 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
正确理解Python中if __name__ == '__main__'
Jan 24 Python
Python TestCase中的断言方法介绍
May 02 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
Python如何安装第三方模块
May 28 Python
python字符串拼接+和join的区别详解
Dec 03 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脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
TensorFlow变量管理详解
2018/03/10 Python
python实现list由于numpy array的转换
2018/04/04 Python
在Python中增加和插入元素的示例
2018/11/01 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
python 标准差计算的实现(std)
2019/07/29 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
社区庆中秋节活动方案
2014/02/07 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
求职信格式范文
2015/03/19 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
军事博物馆观后感
2015/06/05 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书