028-86922220
建站资讯

网站建设资讯

为你提供网站建设行业资讯、网站优化知识、主机域名邮箱、网站开发常见问题等。

使用python采集脚本之家电子书资源并自动下载到本地的实例脚本-创新互联

jb51上面的资源还比较全,就准备用python来实现自动采集信息,与下载啦。

专注于为中小企业提供网站建设、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业千阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

Python具有丰富和强大的库,使用urllib,re等就可以轻松开发出一个网络信息采集器!

下面,是我写的一个实例脚本,用来采集某技术网站的特定栏目的所有电子书资源,并下载到本地保存!

软件运行截图如下:

使用python采集脚本之家电子书资源并自动下载到本地的实例脚本

在脚本运行时期,不但会打印出信息到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
 #

crifan

regex_title = '(?P.+?)</h2>'; title = re.search(regex_title, htmlcontent); if(title): title = title.group("title"); print "书籍名字:",title; file_object.write('书籍名字:'+title+'r'); #<li>书籍大小:<span itemprop="fileSize">27.2MB</span></li> filesize = re.search('<spans+?itemprop="fileSize">(?P<filesize>.+?)</span>', htmlcontent); if(filesize): filesize = filesize.group("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+?class="picthumb"><a href="(?P<bookimg>.+?)" 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="(?P<downurl1>.+?)" 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="(?P<downurl2>.+?)" 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="(?P<urls>.+?)" 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();</pre><p align=center>另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、<a href="https://www.cdcxhl.com/gaofang/" target="_blank">高防服务器</a>、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。</p> <br> 网页题目:使用python采集脚本之家电子书资源并自动下载到本地的实例脚本-创新互联 <br> 本文路径:<a href="http://whjierui.cn/article/dijhco.html">http://whjierui.cn/article/dijhco.html</a> </div> </div> <div class="other"> <h3>其他资讯</h3> <ul> <li> <a href="/article/dgggcd.html">Context-React如何跨组件访问数据-创新互联</a> </li><li> <a href="/article/dgggge.html">用python写窗口程序的方法-创新互联</a> </li><li> <a href="/article/dgggjo.html">SpringBoot整合tk.mybatis代码实例-创新互联</a> </li><li> <a href="/article/dggihg.html">小程序websocket心跳库的示例分析-创新互联</a> </li><li> <a href="/article/dgggig.html">k8s的组件和部署方法介绍-创新互联</a> </li> </ul> </div> </div> <footer> <div class="foot-top"> <ul> <li> <div class="title">关于美图云海</div> <div class="tbox"> <div class="txt"> 美图云海专注于网站建设、小程序开发, <br /> 用心做好每一个网站,懂您所需、做您所想! <br /> 我们比其他网络公司做的更好、做的更多, <br /> 为客户创造更大的价值,让客户更省心! </div> <a rel="nofollow" href="javascript:;" class="more">MORE</a> </div> </li> <li> <div class="title">相关专题</div> <div class="tbox"> <a href="javascript:;" class="link">企业官网定制</a> <a href="javascript:;" class="link">小程序开发</a> <a href="javascript:;" class="link">品牌网站设计</a> <a href="javascript:;" class="link">网站建设标签</a> <a href="javascript:;" class="link">乐山网站建设</a> <a href="javascript:;" class="link">高端网站设计</a> <a href="javascript:;" class="link">公司做网站</a> </div> </li> <li> <div class="title">凭什么选择我们</div> <div class="tbox"> <a class="link">专业设计团队</a> <a class="link">快速响应服务</a> <a class="link">7个软件著作权</a> <a class="link">已服务3000+客户</a> <a class="link">项目检测具体全面</a> <a class="link">技术研发能力强劲</a> <a class="link">深度符合SEO优化</a> <a class="link">15项设计奖项</a> <a class="link">完善的制作流程</a> <a class="link">售后服务让您省心</a> </div> </li> <li> <div class="title">网站设计案例</div> <div class="tbox"> <ul> <li> <a href="javascript:;" target="_blank"> <div class="img"><img src="/Public/Home/images/gebaili.jpg" alt="哥百利" /> </div> <div class="tboxs"> <div class="t1">哥百利</div> <div class="t2">家具研发、设计、生产、服务为一体的专业实木家具订做企业</div> </div> </a> </li> <li> <a href="javascript:;" target="_blank"> <div class="img"><img src="/Public/Home/images/cdshujin.jpg" alt="蜀锦在线" /></div> <div class="tboxs"> <div class="t1">蜀锦在线</div> <div class="t2">汽车行业网站建设</div> </div> </a> </li> </ul> </div> </li> </ul> </div> <div class="foot-center"> <ul> <li> <div class="f-ewm"><img alt="美图云海微信公众号" src="/Public/Home/images/ewm.jpg" /></div> <div class="tbox ewm"> <div class="t1">扫一扫关注</div> <div class="t2">专业团队为您解答</div> </div> </li> <li> <div class="tbox tel"> <div class="t1">电话/邮箱</div> <div class="t2">400-028-6601 / 028-86922220<br>631063699@qq.com</div> </div> </li> <li> <div class="tbox sz"> <div class="t1">成都(总部)</div> <div class="t2">成华区 双林路22号仁禾商务楼5F<br> 大客户专线:13518219792 </div> </div> </li> <li> <div class="tbox gz"> <div class="t1">网站建设(乐山站)</div> <div class="t2"> 乐山市市中区瑞祥路一段1507号 <br /> 028-86922220 </div> </div> </li> </ul> </div> <div class="foot-button"> <div class="link-box" style="width:100%;float:none;"> <div class="a-box"></div> <div style="border-top:1px solid #ebebeb;font-size:12px;color:#666666;line-height:2;padding-top:20px;margin-top:20px;"> 业务范围包括企业网站建设、商城系统开发、品牌网站设计、旅游网站制作、英文外贸网站、教育培训门户网站开发、微信手机移动端开发、响应式网站建设、微信小程序开发、APP定制和其他类型网站定制等。 <br>服务区域包括成都市锦江区、青羊区、武侯区、金牛区、成华区、龙泉驿、温江、新都、高新区、成都市以及全国各地接受异地服务商的公司企业或者机构。 <br> <div class="a-box"><span><b>友情链接</b></span> <a href="http://www.chqzcgs.com/" title="成华区公司注册" target="_blank">成华区公司注册</a><a href="http://www.kmruijie.cn/" title="成都工商办理" target="_blank">成都工商办理</a><a href="http://www.cdkjz.cn/wangzhan/yunying/" title="成都网站代运营" target="_blank">成都网站代运营</a><a href="https://www.scvps.cn/" title="租用服务器" target="_blank">租用服务器</a><a href="http://www.chdeyu.com/" title="佑馨产后护理" target="_blank">佑馨产后护理</a><a href="http://www.idckuai.cn/" title="虚拟主机" target="_blank">虚拟主机</a><a href="https://www.cdcxhl.com/douyin/" title="抖音代运营" target="_blank">抖音代运营</a><a href="http://www.cdxwcx.cn/tuoguan/xibuxinxi.html" title="西信服务器托管" target="_blank">西信服务器托管</a><a href="http://www.nnjike.cn/" title="成都网页设计" target="_blank">成都网页设计</a><a href="http://www.cdxwcx.cn/tuoguan/ershu.html" title="成都枢纽中心" target="_blank">成都枢纽中心</a> </div> </div> <div class="copyright">©2025 青羊区美图云海设计工作室(个体工商户)乐山站   蜀ICP备19037934号</div> </div> </div> </footer> <div class="fixed-contact-wrap show"> <ul class="item-list clearfix"> <li class="phone"> <a rel="nofollow" target="_blank" href="tel:028-86922220"><i class="icon"></i><strong>028-86922220</strong></a> </li> <li class="qq"> <a rel="nofollow" target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=244261566&site=qq&menu=yes"><i class="icon"></i><strong> 244261566</strong></a> </li> <li class="back-top"> <a href="#" rel="nofollow" class="back-to-top"><i class="icon"></i><strong> 回到顶部</strong></a> </li> </ul> </div> <script type="text/javascript"> //右侧联系我们悬浮窗 $(".fixed-contact-wrap").hover(function () { $(this).addClass("active"); }, function () { $(this).removeClass("active"); }) function show_phone_menu() { $(".right-side ul").toggle(); } </script> </body> </html> <script> $(".con img").each(function(){ var src = $(this).attr("src"); //获取图片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //绝对路径 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>