python实现爬虫下载漫画示例


复制代码 代码如下:

!/usr/bin/python3.2

import os,socket
import urllib
import urllib.request,threading,time
import re,sys
global manhuaweb,weburl,floder,chapterbegin,currentthreadnum,threadcount,mutex,mutex2

weburl=''
floder=''
chapterbegin=0
currentthreadnum=0
threadcount=6

if len(sys.argv)>=3:
weburl=sys.argv[1]
floder=sys.argv[2]
else:
print("usag: downloadmanhua weburl floder chapterbegin=0 threadnnum=6")
sys.exit(0)
if len(sys.argv)>=4:
chapterbegin=int(sys.argv[3])
if len(sys.argv)>=5:
threadcount=(int)(sys.argv[4])

def jin(i,jinzhi):
finalans=""
answer=i%jinzhi
i=int(i/jinzhi)
if answer>9:
finalans=finalans+chr(ord('a')+(answer-10))
else:
finalans=finalans+str(answer)
if i!=0:
finalans=jin(i,jinzhi)+finalans
return finalans
def urlparse(p,a,c,k):
d={}
e=lambda c: jin(c,36)
if 1:
while c:
c=c-1
if not k[c]:
d[jin(c,36)]=jin(c,36)
else:
d[jin(c,36)]=k[c]
k=[lambda e:d[e]]
e=lambda c:'\\w+'
c=1
newstr=""
while c:
c=c-1
if k[c]:
for i in range(0,len(p)):
tempi=p[i]
tempi=ord(tempi)
if tempi>=ord('a') and tempi<=ord('f'):
newstr+=d[chr(tempi)]
elif tempi>=ord('0') and tempi<=ord('9'):
newstr+=d[chr(tempi)]
else:
newstr+=chr(tempi)
return newstr
def meispower(s):
p=re.compile(r"(?=\}\().",re.IGNORECASE)
s=p.findall(s)
s=s[0]
s=s[0:(len(s)-19)]
par=s.split(',')
par[3]=par[3][1:len(par[3])]
answer=par[3].split('|')
chapterpath=urlparse(par[0],int(par[1]),int(par[2]),answer)
allurl=re.findall('imgpath=[^;]
',chapterpath)[0]
allurl=allurl[10:(len(allurl)-2)]
return allurl
def pictofile(weburl,filename,loop=100):
if loop<0:
print('can\'t download the picture %s'%weburl)
return
loop=loop-1
if os.path.exists(filename):
return
try:
url=urllib.request.urlopen(weburl)
data=url.read()
if len(data)<2048:
url.close()
pictofile(weburl,filename,loop)
else:
print('download from %s name is %s\n'%(weburl,filename))
myfile=open('%s'%filename,'wb')
myfile.write(data)
myfile.close()
url.close();
except socket.timeout:
print('timeout')
pictofile(weburl,filename,loop)
except Exception as e:
print('error',e)
pictofile(weburl,filename,loop)
finally:
pass
def downloadpic(url,loadpicdir,num):

download the all url picture to loadpicdir

global currentthreadnum,mutex,mutex2
mymode=re.compile(r'[0-9a-z.]\Z')
try:
mutex2.acquire()
os.chdir(loadpicdir)
mutex2.release()
except:
print("can't open the floder %s will be create"%loadpicdir)
try:
if(mutex2.locked()):
os.mkdir(loadpicdir)
os.chdir(loadpicdir)
mutex2.release()
print('create floder succeed')
except:
print("can't create floder %s"%loadpicdir)
if(mutex.acquire()):
mutex.release()
quit(0)
name=mymode.findall(url)
filename='manhua'+name[0]
pictofile(url,loadpicdir+'//'+str(num)+'-'+filename)
mutex.acquire()
currentthreadnum=currentthreadnum-1
mutex.release()
def downloadchapter(url,loadpicdir,num,begin=0):
global manhuaweb,threadcount,currentthreadnum,mutex
print(manhuaweb+url)
webdata=urllib.request.urlopen(manhuaweb+url).read()
webdata=webdata.decode('UTF-8')
chaptername=re.findall(r'[^_]</em>',webdata)[0]<br> chaptername=chaptername[7:len(chaptername)]<br> webscrip=re.findall(r'eval.*[^<>]',webdata)<br> chapterurl=meispower(webscrip[0]);<br> chapterurl='<a href="http://mhimg.ali213.net'+chapterurl" rel='nofollow'>http://mhimg.ali213.net'+chapterurl</a><br> for i in range(begin,num):<br> try:<br> while(currentthreadnum>=threadcount):<br> time.sleep(0.5)<br> mutex.acquire()<br> currentthreadnum=currentthreadnum+1<br> mutex.release()<br> threading.Thread(target=downloadpic,args=(r'%s%d.jpg'%(chapterurl,i),loadpicdir+chaptername,num)).start()<br> except socket.error:<br> mutex.acquire()<br> i=i-1<br> currentthreadnum=currentthreadnum-1<br> mutex.release()<br> except Exception as error:<br> print(error,'break')<br> print('download chapter %d of picture make a error'%i)<br> break<br> if <strong>name</strong>=='<strong>main</strong>':<br> manhuaweb=r'<a href="http://manhua.ali213.net" rel='nofollow'>http://manhua.ali213.net</a>'<br> socket.setdefaulttimeout(60.0)<br> mutex=threading.Lock()<br> mutex2=threading.Lock()</p> <p>webfile=urllib.request.urlopen(weburl)<br> webdata=webfile.read();<br> webdata=webdata.decode('UTF-8')<br> meshmode=re.compile(r'<div class="detail_body_right_sec_con">.*</div>')<br> meshdata=meshmode.findall(webdata)[0]<br> indexmode=re.compile(r'([0-9]*页)')<br> indexdata=indexmode.findall(meshdata)</p> <p>picurlmode=re.compile(r'/comic/[0-9/]*.html')<br> picurldata=picurlmode.findall(meshdata)</p> <p>chapterlength=len(picurldata)<br> nummode=re.compile(r'[\d]+')</p> <p>i=chapterbegin<br> while i<chapterlength:<br> manhuachapter=picurldata[chapterlength-i-1]<br> downloadchapter(manhuachapter,floder,int(nummode.findall(indexdata[chapterlength-i-1])[0]))<br> i=i+1</p> </div><!-- .entry-content --> <footer class="entry-meta"> 本条目发布于<a href="/blog/article/2019/7/11/10763.html" title="2019-07-11" itemprop="datePublished" content="2019-07-11" rel="bookmark"> <time class="entry-date updated" datetime="2019年7月11日 15:12"> 2019-07-11</time> </a> 。属于<a href="/blog/category/python.html" rel="category tag">Python</a>分类, 被贴了 <a href="/blog/tag/python.html" rel="tag">Python</a> 标签。 </footer><!-- .entry-meta --> </article><!-- #post --> <nav class="nav-single"> <h3 class="assistive-text">文章导航</h3> <span class="nav-previous"><a href="/blog/article/2019/7/11/10764.html" rel="prev"><span class="meta-nav">←</span> python中的多线程实例教程</a></span> <span class="nav-next"><a href="/blog/article/2019/7/11/10762.html" rel="next">python抓取网页内容示例分享 <span class="meta-nav">→</span></a></span> </nav><!-- .nav-single --> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 边栏广告位-横幅 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5812992211126268" data-ad-slot="2837379119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <div class="col-md-3 pl-3"> <div id="secondary" class="widget-area" role="complementary"> <aside id="su_siloed_terms-2" class="widget widget_su_siloed_terms"><h3 class="widget-title">分类目录</h3> <ul> <li class="cat-item cat-item-184"><a href=/blog/category/angularjs.html>AngularJS</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/bootstrap.html>BootStrap</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/c.html>C</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/cpp.html>CPP</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/csharp.html>CSharp</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/css.html>CSS</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/dart.html>Dart</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/django.html>Django</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/docker.html>docker</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/flutter.html>Flutter</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/git.html>Git</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/go.html>Go</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/graphgl.html>GraphGL</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/java-javaee.html>Java</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/js.html>JavaScript</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/jenkins.html>Jenkins</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/jquery.html>jQuery</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/kotlin.html>kotlin</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/linux.html>Linux</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/node-js.html>Node.JS</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/other.html>Other</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/php.html>PHP</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/python.html>Python</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/rf.html>RF</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/sql.html>SQL</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/tensorflow.html>TensorFlow</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/webqian-duan.html>Web前端</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/da-shu-ju.html>大数据</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/xue-xi-xian-lu-tu.html>学习线路图</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/xin-wen.html>新闻</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/ji-qi-xue-xi.html>机器学习</a> </li> <li class="cat-item cat-item-184"><a href=/blog/category/ce-shi.html>测试</a> </li> </ul> </aside> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 边栏广告位-横幅 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5812992211126268" data-ad-slot="2837379119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <aside id="recent-posts-2" class="widget widget_recent_entries"><h3 class="widget-title">近期文章</h3> <ul> <li><a href="/blog/article/2020/1/12/11098.html" title="Python最性感十大操作"> Python最性感十大操作 </a></li> <li><a href="/blog/article/2019/12/10/11097.html" title="使用Newman在命令行运行集合"> 使用Newman在命令行运行集合 </a></li> <li><a href="/blog/article/2019/11/14/11096.html" title="robot 命令行参数"> robot 命令行参数 </a></li> <li><a href="/blog/article/2019/11/11/11095.html" title="一个完整的项目测试流程"> 一个完整的项目测试流程 </a></li> <li><a href="/blog/article/2019/11/7/11094.html" title="Postman脚本"> Postman脚本 </a></li> <li><a href="/blog/article/2019/11/6/11093.html" title="Postman快捷键"> Postman快捷键 </a></li> <li><a href="/blog/article/2019/11/6/11092.html" title="Python 读写 .ini 配置文件"> Python 读写 .ini 配置文件 </a></li> <li><a href="/blog/article/2019/11/3/11091.html" title="入行测试开发-零基础入门好课"> 入行测试开发-零基础入门好课 </a></li> <li><a href="/blog/article/2019/10/16/11090.html" title="鸣谢"> 鸣谢 </a></li> <li><a href="/blog/article/2019/10/16/11089.html" title="Appium 简述"> Appium 简述 </a></li> </ul> </aside> <!-- <aside id="tag_cloud-2" class="widget widget_tag_cloud"><h3 class="widget-title">标签云</h3> <div class="tagcloud"> <a href="/blog/tag/ajax.html" class="tag-link-24 tag-link-position-24" style="font-size: 10.038357644516477pt;" title="3个话题"> Ajax </a> <a href="/blog/tag/angular.html" class="tag-link-32 tag-link-position-32" style="font-size: 10.179002341076895pt;" title="14个话题"> Angular </a> <a href="/blog/tag/bootstrap.html" class="tag-link-20 tag-link-position-20" style="font-size: 10.166216459571404pt;" title="13个话题"> BootStrap </a> <a href="/blog/tag/c.html" class="tag-link-10 tag-link-position-10" style="font-size: 10.332432919142805pt;" title="26个话题"> c# </a> <a href="/blog/tag/c.html" class="tag-link-5 tag-link-position-5" style="font-size: 10.242931748604358pt;" title="19个话题"> c++ </a> <a href="/blog/tag/css.html" class="tag-link-7 tag-link-position-7" style="font-size: 10.434719971186746pt;" title="34个话题"> CSS </a> <a href="/blog/tag/css3.html" class="tag-link-25 tag-link-position-25" style="font-size: 10.076715289032956pt;" title="6个话题"> CSS3 </a> <a href="/blog/tag/cyu-yan.html" class="tag-link-3 tag-link-position-3" style="font-size: 10.20457410408788pt;" title="16个话题"> C语言 </a> <a href="/blog/tag/dart.html" class="tag-link-58 tag-link-position-58" style="font-size: 10.166216459571404pt;" title="13个话题"> Dart </a> <a href="/blog/tag/db2.html" class="tag-link-15 tag-link-position-15" style="font-size: 10.012785881505492pt;" title="1个话题"> DB2 </a> <a href="/blog/tag/django.html" class="tag-link-38 tag-link-position-38" style="font-size: 10.652079956780119pt;" title="51个话题"> Django </a> <a href="/blog/tag/django-csrf.html" class="tag-link-44 tag-link-position-44" style="font-size: 10.012785881505492pt;" title="1个话题"> Django-CSRF </a> <a href="/blog/tag/djangowen-jian-shang-chuan.html" class="tag-link-39 tag-link-position-39" style="font-size: 10.012785881505492pt;" title="1个话题"> Django文件上传 </a> <a href="/blog/tag/elasticsearch.html" class="tag-link-63 tag-link-position-63" style="font-size: 10.012785881505492pt;" title="1个话题"> elasticsearch </a> <a href="/blog/tag/es6.html" class="tag-link-23 tag-link-position-23" style="font-size: 10.012785881505492pt;" title="1个话题"> ES6 </a> <a href="/blog/tag/firewalld.html" class="tag-link-37 tag-link-position-37" style="font-size: 10.012785881505492pt;" title="1个话题"> firewalld </a> <a href="/blog/tag/flutter.html" class="tag-link-57 tag-link-position-57" style="font-size: 12.659463353142446pt;" title="208个话题"> Flutter </a> <a href="/blog/tag/git.html" class="tag-link-54 tag-link-position-54" style="font-size: 10.281289393120836pt;" title="22个话题"> Git </a> <a href="/blog/tag/go.html" class="tag-link-9 tag-link-position-9" style="font-size: 10.35800468215379pt;" title="28个话题"> Go </a> <a href="/blog/tag/gradle.html" class="tag-link-45 tag-link-position-45" style="font-size: 10.012785881505492pt;" title="1个话题"> Gradle </a> <a href="/blog/tag/graphql.html" class="tag-link-67 tag-link-position-67" style="font-size: 10.038357644516477pt;" title="3个话题"> GraphQL </a> <a href="/blog/tag/grunt.html" class="tag-link-29 tag-link-position-29" style="font-size: 10.012785881505492pt;" title="1个话题"> Grunt </a> <a href="/blog/tag/gson.html" class="tag-link-33 tag-link-position-33" style="font-size: 10.012785881505492pt;" title="1个话题"> Gson </a> <a href="/blog/tag/gulp.html" class="tag-link-28 tag-link-position-28" style="font-size: 10.025571763010985pt;" title="2个话题"> Gulp </a> <a href="/blog/tag/homebrew.html" class="tag-link-52 tag-link-position-52" style="font-size: 10.012785881505492pt;" title="1个话题"> HomeBrew </a> <a href="/blog/tag/html.html" class="tag-link-6 tag-link-position-6" style="font-size: 10.025571763010985pt;" title="2个话题"> html </a> <a href="/blog/tag/html5.html" class="tag-link-26 tag-link-position-26" style="font-size: 10.012785881505492pt;" title="1个话题"> HTML5 </a> <a href="/blog/tag/java.html" class="tag-link-4 tag-link-position-4" style="font-size: 12.608319827120475pt;" title="204个话题"> Java </a> <a href="/blog/tag/java-nio.html" class="tag-link-49 tag-link-position-49" style="font-size: 10.166216459571404pt;" title="13个话题"> Java-NIO </a> <a href="/blog/tag/java8.html" class="tag-link-47 tag-link-position-47" style="font-size: 10.10228705204394pt;" title="8个话题"> Java8 </a> <a href="/blog/tag/javasuan-fa.html" class="tag-link-65 tag-link-position-65" style="font-size: 10.818296416351522pt;" title="64个话题"> Java算法 </a> <a href="/blog/tag/jquery.html" class="tag-link-21 tag-link-position-21" style="font-size: 10.15343057806591pt;" title="12个话题"> jQuery </a> <a href="/blog/tag/javascript.html" class="tag-link-2 tag-link-position-2" style="font-size: 10.90779758688997pt;" title="71个话题"> JS </a> <a href="/blog/tag/json.html" class="tag-link-34 tag-link-position-34" style="font-size: 10.012785881505492pt;" title="1个话题"> Json </a> <a href="/blog/tag/kotlin.html" class="tag-link-55 tag-link-position-55" style="font-size: 10.473077615703223pt;" title="37个话题"> kotlin </a> <a href="/blog/tag/laravel.html" class="tag-link-59 tag-link-position-59" style="font-size: 10.012785881505492pt;" title="1个话题"> Laravel </a> <a href="/blog/tag/linux.html" class="tag-link-36 tag-link-position-36" style="font-size: 10.255717630109851pt;" title="20个话题"> Linux </a> <a href="/blog/tag/markdown.html" class="tag-link-51 tag-link-position-51" style="font-size: 10.012785881505492pt;" title="1个话题"> Markdown </a> <a href="/blog/tag/maven.html" class="tag-link-68 tag-link-position-68" style="font-size: 10.012785881505492pt;" title="1个话题"> maven </a> <a href="/blog/tag/memcached.html" class="tag-link-18 tag-link-position-18" style="font-size: 10.012785881505492pt;" title="1个话题"> MemCached </a> <a href="/blog/tag/mongodb.html" class="tag-link-17 tag-link-position-17" style="font-size: 10.012785881505492pt;" title="1个话题"> MongoDB </a> <a href="/blog/tag/mysql.html" class="tag-link-1 tag-link-position-1" style="font-size: 10.038357644516477pt;" title="3个话题"> mysql </a> <a href="/blog/tag/node-js.html" class="tag-link-22 tag-link-position-22" style="font-size: 10.575364667747163pt;" title="45个话题"> Node.js </a> <a href="/blog/tag/noreversematch.html" class="tag-link-40 tag-link-position-40" style="font-size: 10.012785881505492pt;" title="1个话题"> NoReverseMatch </a> <a href="/blog/tag/npm.html" class="tag-link-27 tag-link-position-27" style="font-size: 10.012785881505492pt;" title="1个话题"> NPM </a> <a href="/blog/tag/okhttp.html" class="tag-link-35 tag-link-position-35" style="font-size: 10.012785881505492pt;" title="1个话题"> OkHttp </a> <a href="/blog/tag/oracle.html" class="tag-link-13 tag-link-position-13" style="font-size: 10.012785881505492pt;" title="1个话题"> oracle </a> <a href="/blog/tag/php.html" class="tag-link-50 tag-link-position-50" style="font-size: 10.255717630109851pt;" title="20个话题"> PHP </a> <a href="/blog/tag/python.html" class="tag-link-8 tag-link-position-8" style="font-size: 137.9994597514857pt;" title="10011个话题"> Python </a> <a href="/blog/tag/queryset.html" class="tag-link-41 tag-link-position-41" style="font-size: 10.012785881505492pt;" title="1个话题"> QuerySet </a> <a href="/blog/tag/react.html" class="tag-link-31 tag-link-position-31" style="font-size: 10.012785881505492pt;" title="1个话题"> React </a> <a href="/blog/tag/redis.html" class="tag-link-16 tag-link-position-16" style="font-size: 10.012785881505492pt;" title="1个话题"> Redis </a> <a href="/blog/tag/redux.html" class="tag-link-60 tag-link-position-60" style="font-size: 10.012785881505492pt;" title="1个话题"> redux </a> <a href="/blog/tag/robot-framework.html" class="tag-link-70 tag-link-position-70" style="font-size: 10.0pt;" title="0个话题"> Robot Framework </a> <a href="/blog/tag/selenium.html" class="tag-link-71 tag-link-position-71" style="font-size: 10.562578786241671pt;" title="44个话题"> selenium </a> <a href="/blog/tag/sklearn.html" class="tag-link-64 tag-link-position-64" style="font-size: 10.012785881505492pt;" title="1个话题"> sklearn </a> <a href="/blog/tag/spark.html" class="tag-link-61 tag-link-position-61" style="font-size: 10.012785881505492pt;" title="1个话题"> Spark </a> <a href="/blog/tag/spring.html" class="tag-link-42 tag-link-position-42" style="font-size: 10.012785881505492pt;" title="1个话题"> Spring </a> <a href="/blog/tag/spring-boot.html" class="tag-link-43 tag-link-position-43" style="font-size: 10.012785881505492pt;" title="1个话题"> Spring-Boot </a> <a href="/blog/tag/sql.html" class="tag-link-11 tag-link-position-11" style="font-size: 10.345218800648299pt;" title="27个话题"> SQL </a> <a href="/blog/tag/sqlite.html" class="tag-link-19 tag-link-position-19" style="font-size: 10.012785881505492pt;" title="1个话题"> SQLite </a> <a href="/blog/tag/sqlserver.html" class="tag-link-14 tag-link-position-14" style="font-size: 10.012785881505492pt;" title="1个话题"> SQLServer </a> <a href="/blog/tag/storm.html" class="tag-link-62 tag-link-position-62" style="font-size: 10.012785881505492pt;" title="1个话题"> storm </a> <a href="/blog/tag/struts2jiao-cheng.html" class="tag-link-69 tag-link-position-69" style="font-size: 10.076715289032956pt;" title="6个话题"> struts2教程 </a> <a href="/blog/tag/tensorflow.html" class="tag-link-56 tag-link-position-56" style="font-size: 10.140644696560418pt;" title="11个话题"> TensorFlow </a> <a href="/blog/tag/typescript.html" class="tag-link-53 tag-link-position-53" style="font-size: 10.063929407527462pt;" title="5个话题"> TypeScript </a> <a href="/blog/tag/vscode.html" class="tag-link-66 tag-link-position-66" style="font-size: 10.012785881505492pt;" title="1个话题"> vscode </a> <a href="/blog/tag/vuejs.html" class="tag-link-30 tag-link-position-30" style="font-size: 10.025571763010985pt;" title="2个话题"> VueJS </a> <a href="/blog/tag/webpack.html" class="tag-link-46 tag-link-position-46" style="font-size: 10.012785881505492pt;" title="1个话题"> webpack </a> <a href="/blog/tag/shu-ju-ku.html" class="tag-link-12 tag-link-position-12" style="font-size: 10.012785881505492pt;" title="1个话题"> 数据库 </a> <a href="/blog/tag/ji-qi-xue-xi.html" class="tag-link-48 tag-link-position-48" style="font-size: 10.10228705204394pt;" title="8个话题"> 机器学习 </a> </div> </aside> --> <div id="rocket" class="show" title="点我返回顶部"></div> </div><!-- #secondary --> </div> </div> </div> </div> </div> <footer class="es-footer"> <div class="copyright"> <div class="container"> Powered by <a href="http://www.codingdict.com/" target="_blank">CodingDict</a> ©2014-2020 <a class="mlm" href="http://www.codingdict.com/" target="_blank">编程字典</a> <a class="mlm" href="http://www.codingdict.com/courses">课程存档</a> <div class="mts"> 课程内容版权均归 <a href="http://www.codingdict.com/"> CodingDict </a> 所有 <a class="mlm" href="http://www.beian.miit.gov.cn/" target="_blank"> 京ICP备18030172号 </a> </div> </div> </div> </footer> <script src="/static/assets/course/js/translator.min.js" type="application/javascript"></script> <script src="/static/assets/course/js/zh_CN.js" type="application/javascript"></script> <script src="/static/assets/course/js/base.js" type="application/javascript"></script> <!-- <script src="/static/assets/course/js/common.js" type="application/javascript"></script>--> <!-- <script src="/static/assets/course/js/main.js" type="application/javascript"></script>--> <script src="/static/assets/course/js/index.js" type="application/javascript"></script> <script src="/static/assets/course/js/theme_main.js" type="application/javascript"></script> <script src="/static/assets/course/js/echo-js.js" type="application/javascript"></script> <script src="/static/assets/course/js/theme2_main.js" type="application/javascript"></script> <script src="/static/assets/course/js/header_index.js" type="application/javascript"></script> <script src="/static/blog/js/jquery-3.1.1.js" type="text/javascript"></script> <script src="/static/blog/js/nprogress.js" type="text/javascript"></script> <script src="/static/blog/js/blog.js" type="application/javascript"></script> <script src="/static/blog/js/navigation.js" type="application/javascript"></script> <script src="/static/assets/js/common.js" type="text/javascript"></script> <script src="/static/assets/js/popper.min.js" type="text/javascript"></script> <script src="/static/assets/js/bootstrap.min.js" type="text/javascript"></script> </div> </body> </html>