蝙蝠岛资源网 Design By www.hbtsch.com
jb51上面的资源还比较全,就准备用python来实现自动采集信息,与下载啦。
Python具有丰富和强大的库,使用urllib,re等就可以轻松开发出一个网络信息采集器!
下面,是我写的一个实例脚本,用来采集某技术网站的特定栏目的所有电子书资源,并下载到本地保存!
软件运行截图如下:
在脚本运行时期,不但会打印出信息到shell窗口,还会保存日志到txt文件,记录采集到的页面地址,书籍的名称,大小,服务器本地下载地址以及百度网盘的下载地址!
实例采集并下载的python栏目电子书资源:
# -*- coding:utf-8 -*-
import re
import urllib2
import urllib
import sys
import os
reload(sys)
sys.setdefaultencoding('utf-8')
def getHtml(url):
request = urllib2.Request(url)
page = urllib2.urlopen(request)
htmlcontent = page.read()
#解决中文乱码问题
htmlcontent = htmlcontent.decode('gbk', 'ignore').encode("utf8",'ignore')
return htmlcontent
def report(count, blockSize, totalSize):
percent = int(count*blockSize*100/totalSize)
sys.stdout.write("r%d%%" % percent + ' complete')
sys.stdout.flush()
def getBookInfo(url):
htmlcontent = getHtml(url);
#print "htmlcontent=",htmlcontent; # you should see the ouput html
#<h1 class="h1user">crifan</h1>
regex_title = '<h1s+"name">("title");
print "书籍名字:",title;
file_object.write('书籍名字:'+title+'r');
#<li>书籍大小:<span itemprop="fileSize">27.2MB</span></li>
filesize = re.search('<spans+"fileSize">("filesize");
print "文件大小:",filesize;
file_object.write('文件大小:'+filesize+'r');
#<div class="picthumb"><a href="//img.jbzj.com/do/uploads/litimg/151210/1A9262GO2.jpg" target="_blank"
bookimg = re.search('<divs+"picthumb"><a href="(" rel="external nofollow" target="_blank"', htmlcontent);
if(bookimg):
bookimg = bookimg.group("bookimg");
print "封面图片:",bookimg;
file_object.write('封面图片:'+bookimg+'r');
#<li><a href="http://xz6.jb51.net:81/201512/books/JavaWeb100(jb51.net).rar" target="_blank">酷云中国电信下载</a></li>
downurl1 = re.search('<li><a href="(" rel="external nofollow" target="_blank">酷云中国电信下载</a></li>', htmlcontent);
if(downurl1):
downurl1 = downurl1.group("downurl1");
print "下载地址1:",downurl1;
file_object.write('下载地址1:'+downurl1+'r');
sys.stdout.write('rFetching ' + title + '...n')
title = title.replace(' ', '');
title = title.replace('/', '');
saveFile = '/Users/superl/Desktop/pythonbook/'+title+'.rar';
if os.path.exists(saveFile):
print "该文件已经下载了!";
else:
urllib.urlretrieve(downurl1, saveFile, reporthook=report);
sys.stdout.write("rDownload complete, saved as %s" % (saveFile) + 'nn')
sys.stdout.flush()
file_object.write('文件下载成功!r');
else:
print "下载地址1不存在";
file_error.write(url+'r');
file_error.write(title+"下载地址1不存在!文件没有自动下载!r");
file_error.write('r');
#<li><a href="http://pan.baidu.com/s/1pKfVNwJ" rel="external nofollow" target="_blank">百度网盘下载2</a></li>
downurl2 = re.search('</a></li><li><a href="(" rel="external nofollow" target="_blank">百度网盘下载2</a></li>', htmlcontent);
if(downurl2):
downurl2 = downurl2.group("downurl2");
print "下载地址2:",downurl2;
file_object.write('下载地址2:'+downurl2+'r');
else:
#file_error.write(url+'r');
print "下载地址2不存在";
file_error.write(title+"下载地址2不存在r");
file_error.write('r');
file_object.write('r');
print "n";
def getBooksUrl(url):
htmlcontent = getHtml(url);
#<ul class="cur-cat-list"><a href="/books/438381.html" rel="external nofollow" class="tit"</ul></div><!--end #content -->
urls = re.findall('<a href="(" rel="external nofollow" class="tit"', htmlcontent);
for url in urls:
url = "//www.jb51.net"+url;
print url+"n";
file_object.write(url+'r');
getBookInfo(url)
#print "url->", url
if __name__=="__main__":
file_object = open('/Users/superl/Desktop/python.txt','w+');
file_error = open('/Users/superl/Desktop/pythonerror.txt','w+');
pagenum = 3;
for pagevalue in range(1,pagenum+1):
listurl = "//www.jb51.net/ books/list476_%d.html"%pagevalue;
print listurl;
file_object.write(listurl+'r');
getBooksUrl(listurl);
file_object.close();
file_error.close();
注意,上面代码部分地方的url被我换了。
总结
以上所述是小编给大家介绍的python采集jb51电子书资源并自动下载到本地实例脚本,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无使用python采集脚本之家电子书资源并自动下载到本地的实例脚本的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2025年11月11日
2025年11月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
