Python爬虫,批量下载小说网站上的小说!

news/2024/5/11 4:50:05/文章来源:https://blog.csdn.net/PythonJavaPHP/article/details/103141186

爬虫脚本把这个小说网上的几乎所有小说都下载到了本地,一共27000+本小说,一共40G。

 

完整代码:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#coding=utf-8 2 import urllib 3 import urllib2 4 import re 5 import os 6  7 webroot = 'http://www.xuanshu.com' 8  9 for page in range(20,220):10     print '正在下载第'+str(page)+'页小说'11     12     url = 'http://www.xuanshu.com/soft/sort02/index_'+str(page)+'.html'13     headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'  }14     try:15         request = urllib2.Request(url,headers=headers)16         response = urllib2.urlopen(request,timeout=180)17         #print response.read()18     except urllib2.URLError, e:19         if hasattr(e,"code"):20             print e.code21         if hasattr(e,"reason"):22             print e.reason23 24     html = response.read().decode('utf-8')25     #print html26     pattern = re.compile(u'<li>.*?<div class="s">.*?target="_blank">(.*?)</a><br />大小:(.*?)<br>.*?</em><br>更新:(.*?)</div>.*?<a href="(.*?)"><img.*?>(.*?)</a>.*?<div class="u">(.*?)</div>',re.S)27     items = re.findall(pattern,html)28     #print items29 30     for item in items:31         try:32             book_auther = item[0].encode('gbk')33             book_size = item[1].encode('gbk')34             book_updatetime = item[2].encode('gbk')35             book_link = item[3].encode('gbk')36             book_name = item[4].encode('gbk')37             book_note = item[5].encode('gbk')38             39             book_full_link = webroot + book_link    # 构建书的绝对地址40 41             #请求地址42             try:43                 request = urllib2.Request(book_full_link,headers=headers)44                 response = urllib2.urlopen(request,timeout=180)45             except urllib2.URLError, e:46                 if hasattr(e,"code"):47                     print e.code48                 if hasattr(e,"reason"):49                     print e.reason50             html = response.read().decode('utf-8')51             #print html52             pattern = re.compile('<a class="downButton.*?<a class="downButton" href=\'(.*?)\'.*?Txt.*?</a>',re.S)53             down_link = re.findall(pattern,html)54             print book_name55             print down_link56             57             # down txt58             try:59                 request = urllib2.Request(down_link[0].encode('utf-8'),headers=headers)60                 response = urllib2.urlopen(request,timeout=180)61             except urllib2.URLError, e:62                 if hasattr(e,"code"):63                     print e.code64                 if hasattr(e,"reason"):65                     print e.reason66             try:67                 fp = open(book_name+'.txt','w')68             except IOError,e:69                 pattern = re.compile('<strong>.*?>(.*?)<.*?</strong>',re.S)70                 book_name = re.findall(pattern,book_name)71                 fp = open(book_name[0]+'.txt','w')72             print 'start download'73             fp.write(response.read())74             print 'down finish\n'75             fp.close()76         except Exception,e:77             print '该条目解析出现错误,忽略'78             print e79             print ''80             fp = open('error.log','a')81             fp.write('page:'+str(page)+'\n')82             fp.write(item[4].encode('gbk'))83             #fp.write(e)84             fp.write('\nThere is an error in parsing process.\n\n')85             fp.close()

该脚本只定向抓取“选书网”小说站,“玄幻奇幻”分类下的小说。供网友们参考,可自行修改。

写得比较粗糙,勿喷……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_855239.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 Python 和 BeautifulSoup 爬取网站!

互联网上的信息如此之多&#xff0c;任何人穷其一生也无法全部消化吸收。你需要的不是访问这些信息&#xff0c;而是一种可伸缩的方式&#xff0c;可以用来收集、组织和分析这些信息。你需要的是 Web 爬取。Web 爬取可以自动提取数据&#xff0c;并以一种让你可以轻松理解的格式…

江南鹤微信hook c#版已实现webhook,在你的网站中也可以调用hook了

可以将hook软件放在服务器上。在客户端电脑上用web调用即可。 特色&#xff1a; 1 每次登录只显示二维码&#xff0c;不再显示上次登录的用户 2 设置好不自动更新后&#xff0c;会保存。下次用户登录&#xff0c;程序也不会自动更新。 交流vx&#xff1a;weixinhook 第一步…

Python Flask 搭建个人网站

介绍Hello Kuko 是使用PythonFlask这样的组合搭建的网站&#xff0c;虽然其中的功能根本没有。项目已开源到github&#xff1a;kukoapp.pyimport io import json import os import randomfrom flask import Flask from flask import url_for from flask import request from fl…

CentOS 简便方法新手搭建一个网站

该文章写给从来没有搭建过网站的小伙伴们的&#xff0c;大佬们就不要浪费时间看下去了。 只搭建nginx&#xff0c;不搭建后端、数据库等相关服务&#xff0c;目的是让小伙伴能在刚刚学习完Html、css、js之后能够更直观的访问到自己的网页。 如何快速的搭建一个网站呢&#xf…

docnet 开发需要知道的网站!()

当前全球有数百万的开发人员在使用微软的.NET 技术。如果你是其中之一&#xff0c;或者想要成为其中之一的话&#xff0c;我下面将要列出的每一个站点都应该是你的最爱&#xff0c;都应该收藏到书签中去。 对于不熟悉.NET技术的朋友&#xff0c;需要说明一下&#xff0c;.NET…

vs2010发布网站

发布网站步骤&#xff1a; 1、新建网站&#xff1a; 打开IIS&#xff0c;右击网站——>添加网站 填写网站名称&#xff08;随便写&#xff09;和应用程序池名称 物理路径选择你要存放发布网站的位置&#xff08;最好自己新建一个空的文件夹&#xff09; 点击身份验证下的链…

chrome 打开csdn网站显示有问题

换一个浏览器就不会 这是为啥

详解微软网站三剑客之Graphic Designer

Adobe合并Macromedia后&#xff0c;就不断传来微软开发图形图像和动画软件的消息。不过信息少的可怜&#xff0c;特别是号称Flash杀手的“Sparkle”&#xff0c;除了一条简短的新闻就没别的了。所谓厚积薄发&#xff0c;没想到微软这次一出手就是三款设计软件&#xff0c;看来是…

Ubuntu 12.04下搭建Web网站服务器 (MySQL+PHP+Apache环境)教程

Ubuntu 12.04下搭建Web网站服务器 &#xff08;MySQLPHPApache环境&#xff09;教程 作者&#xff1a;木瓜 发布&#xff1a;2012-04-28 22:06 分类&#xff1a;网络 阅读&#xff1a;1832次 10条评论 分享到&#xff1a;QQ空间新浪微博腾讯微博人人网更多10前言 看了…

在网站上添加百度搜索

我们自己开发的个人网站有时需要将百度搜索加上&#xff0c;怎么加呢&#xff1f; 其实很简单&#xff0c;将如下代码加到自己需要的网页上即可&#xff1a; 当然有技术的朋友可以到hao123上参考&#xff0c;将hao123上的百度搜索条拿来自己用。 <form data-hook"sear…

demo4 表格隔行变色效果 onmouseout onmouseover

let trs document.querySelector(tbody).querySelectorAll(tr)for(let i0;i<trs.length;i){// 鼠标经过事件trs[i].onmouseover function(){this.className bg}// 鼠标离开事件trs[i].onmouseout function(){this.className }}

大学四年,靠着这些学习网站,我从挂科学渣变成了别人眼中的大神

原文链接&#xff1a; https://blog.csdn.net/JAck_chen0309/article/details/104780288 前记 毕业合影时&#xff0c;导员笑着对我说“你可是我们系里的风云人物”。我也笑了&#xff0c;思绪却回到了四年前。 还记得四年前&#xff0c;我从小县城里走出&#xff0c;来到学校…

docker-compose 配置 nginx + node + mysql 网站环境

本文需要熟悉 Docker、Node、Nginx 的基础知识&#xff0c;如果不熟悉的同学需要查看文档了解学习后阅读。 Docker - 从入门到实践Node.js v10.15.3 文档Nginx 入门指南 这里开始正文 准备测试代码 初始化一个项目目录&#xff0c;并配置基础的测试代码 简单的一些代码下面不…

为你的网站配置一个小巧的框架( CodeIgniter)

现在的web开发确实已经到了无框架卜欢乐的状态&#xff0c;无论是前端&#xff1a;JavaScript&#xff08;vue.js\react.js\angular.js框架和jQuery库&#xff09;&#xff0c;CSS&#xff08;bootstrap&#xff09;&#xff0c;还是后端&#xff1a;PHP&#xff08;CI/thinkPH…

使用postman测试需要登陆认证网站的api

postman作为一款web开发中必备的神器&#xff0c;有很多只是需要我们去学习 如果想要使用postman测试需要登陆认证网站的api&#xff0c;只需开启一个按钮&#xff1a; 然后在头部添加cookie以及X-CSRFToken&#xff08;因为项目是django&#xff09;

用户点击与网站目标 - 基于Google Analytics的应用

转载出处: http://webdataanalysis.net/tool-for-web-analytics/click-and-goal/ 用户在网站的行为其实无非就是输入和点击&#xff0c;而点击又是最常见的行为&#xff0c;其实用户行为分析一大部分就是在分析用户各种各样的点击行为。我们可以通过各种途径来监控用户点击行为…

三招教你提升团购网站流量转化率(上)

转载出处: http://hi.baidu.com/%CE%A4%B2%AE%C4%C9%CB%B9/blog/item/21f173c3275b82c7d10060a0.html/cmtid/8501cf90d0feb311d21b70ea 本人负责经营美心计化妆品团购网站&#xff0c;日常推广需要对流量进行分析。而流量分析中的核心是分析流量的价值&#xff0c;流量的价值是…

学习Web 开发技术的16个国外最佳教程网站和博客

转载地址: http://www.w3cfuns.com/article-788-1.html 互联网经过这么多年的发展&#xff0c;已经出现了众多的 Web 开发技术&#xff0c;像 .Net/Java/PHP/Python/Ruby 等等。对于 Web 开发人员来说&#xff0c;不管是初学者还是有一定经验的开发人员都需要时刻学习新的开发…

触摸屏网站开发系列(一)-ios web App应用程序(ios meta)

转载地址: http://www.iptu.net/index.php/archives/2955.iptu 触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了&#xff0c;触摸屏设备IOS、Android、BBOS6等系统自带浏览器均为WEBKIT核心&#xff0c;这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里&#xff…

css横幅_CSS3:创建网站横幅

css横幅Inspired by Tamsin Baker’s beautiful Photoshop brushes “Urban Scrawl” 1 and 2, I was trying to create some shadowed banners using some CSS3 properties. Visit Tamsin’s site and check out all her inspiring artwork including the free Photoshop brus…