python 抓取小说网站,制作电子书。

news/2024/5/9 11:59:34/文章来源:https://blog.csdn.net/weixin_30664615/article/details/96960088

分析目的(或者说要达到的效果)

实现一个小说下载器,输入小说的名字然后抓取小说的全部章节,制作成文档。
需要的知识:使用BeautifulSoup或正则解析网页,使用requests下载网页。

搜索小说

直接用小说的站内搜索
966959-20161125154901893-507292595.png
使用小说网站的搜索页面:http://so.sanjiangge.com/cse/search 这个网站用的是百度的站内搜索
需要提交的数据有q:我们要搜索的文字,clik和entry顾名思义,而s应该是百度站内搜索的用户码吧。
966959-20161125154951034-1632748707.png

import requests
def directory(name):params = {"q":name, "click":1, "entry":1, "s":781863708123447302, "nsid":""}url = "http://so.sanjiangge.com/cse/search"print(url)r = requests.get(url,params=params)r.encoding = "utf-8"return r.text

返回的是一个HTML文件。注意必须把网页的编码方式改为utf-8。

解析网页

966959-20161125155119534-2038732700.png
先把第一步的网页搜索结果提取出来,使用BeautifulSoup模块找到我们要找到书的链接。
先看看网页的结构

<div class="result-item result-game-item"><div class="result-game-item-pic"><a cpos="img" href="http://www.dingdianzw.com/book/2430.html" class="result-game-item-pic-link" target="_blank" style="width:110px;height:150px;"><img src="http://www.dingdianzw.com/files/article/image/2/2430/2430s.jpg" alt="<em>一念</em><em>永恒</em>" class="result-game-item-pic-link-img"onerror="$(this).attr('src', '/static/img/novel-noimg.jpg')" > </a></div><div class="result-game-item-detail"><h3 class="result-item-title result-game-item-title"><a cpos="title" href="http://www.dingdianzw.com/book/2430.html" title="一念永恒" class="result-game-item-title-link" target="_blank"><em>一念</em><em>永恒</em></a></h3><p class="result-game-item-desc"><em>一念</em>成沧海,<em>一念</em>化桑田。<em>一念</em>斩千魔,<em>一念</em>诛万仙。唯我念……<em>永恒</em></p><div class="result-game-item-info"><p class="result-game-item-info-tag"><span class="result-game-item-info-tag-title preBold">作者:</span><span>耳根</span></p><p class="result-game-item-info-tag"><span class="result-game-item-info-tag-title preBold">类型:</span><span class="result-game-item-info-tag-title">武侠修真</span></p><p class="result-game-item-info-tag"><span class="result-game-item-info-tag-title preBold">更新时间:</span><span class="result-game-item-info-tag-title">2016-11-10</span></p><p class="result-game-item-info-tag"><span class="result-game-item-info-tag-title preBold">最新章节:</span><a cpos="newchapter" href="http://www.dingdianzw.com/chapter/2430_5101830.html" class="result-game-item-info-tag-item" target="_blank">第405章 送你上天……</a></p></div></div>
</div>

上面就包含了我们需要的所有信息(封面,书名,书的地址,最近章节等等)我们只需要排第一的搜索选项中的书名和书的地址,使用BeautfulSoup或正则表达式提取出来。

    if r.url == "http://www.baidu.com/search/error.html":return Falseelse:bsObj = BeautifulSoup(r.text, "lxml").findAll("a", {"cpos":"title"})[0]return (bsObj["href"],bsObj.get_text()[1:-1])

加入搜索错误的检测,如果错误页面将会重定向到百度的错误页面。并且把书的链接提取出来。
接着再来看看书页面的源代码

<dd><a href="23410363.html" title="外传1 柯父。">外传1 柯父。</a></dd><dd><a href="23410364.html" title="外传2 楚玉嫣。">外传2 楚玉嫣。</a></dd><dd><a href="23410365.html" title="外传3 鹦鹉与皮冻。">外传3 鹦鹉与皮冻。</a></dd><dd><a href="23410366.html" title="第一章 他叫白小纯">第一章 他叫白小纯</a></dd>
<dd><a href="23410367.html" title="第二章 火灶房">第二章 火灶房</a></dd><dd><a href="23410369.html" title="第三章 六句真言">第三章 六句真言</a></dd><dd><a href="23410370.html" title="第四章 炼灵">第四章 炼灵</a></dd><dd><a href="23410371.html" title="第五章 万一丢了小命咋办">第五章 万一丢了小命咋办</a></dd>
<dd><a href="23410372.html" title="第六章 灵气上头">第六章 灵气上头</a></dd><dd><a href="23410373.html" title="第七章 龟纹认主">第七章 龟纹认主</a></dd><dd><a href="23410374.html" title="第八章 我和你拼了!">第八章 我和你拼了!</a></dd><dd><a href="23410375.html" title="第九章 延年益寿丹">第九章 延年益寿丹</a></dd>
<dd><a href="23410376.html" title="第十章 师兄别走">第十章 师兄别走</a></dd><dd><a href="23410377.html" title="第十一章 侯小妹">第十一章 侯小妹</a></dd><dd><a href="23410379.html" title="第十二章 篱笆墙上">第十二章 篱笆墙上</a></dd><dd><a href="23410380.html" title="第十三章 你也来吧!">第十三章 你也来吧!</a></dd>
<dd><a href="23410382.html" title="第十四章 三师兄?三师姐?">第十四章 三师兄?三师姐?</a></dd><dd><a href="23411581.html" title="第十五章 不死长生功!">第十五章 不死长生功!</a></dd><dd><a href="23411582.html" title="第十六章 心细入微">第十六章 心细入微</a></dd><dd><a href="23411583.html" title="第十七章 小乌龟">第十七章 小乌龟</a></dd>
<dd><a href="23411584.html" title="第十八章 引领气氛!">第十八章 引领气氛!</a></dd><dd><a href="23411585.html" title="第十九章 白鼠狼的传说">第十九章 白鼠狼的传说</a></dd><dd><a href="23411586.html" title="第二十章 一地鸡毛">第二十章 一地鸡毛</a></dd><dd><a href="23411587.html" title="第二十一章 小纯哥哥……">第二十一章 小纯哥哥……</a></dd>
<dd><a href="23411588.html" title="第二十二章 师姐放心!">第二十二章 师姐放心!</a></dd><dd><a href="23411589.html" title="第二十三章 偷鸡狂魔">第二十三章 偷鸡狂魔</a></dd><dd><a href="23411590.html" title="第二十四章 你是谁">第二十四章 你是谁</a></dd><dd><a href="23411591.html" title="第二十五章 不死铁皮!">第二十五章 不死铁皮!</a></dd>
<dd><a href="23411592.html" title="第二十六章 灵尾鸡好吃么?">第二十六章 灵尾鸡好吃么?</a></dd><dd><a href="23411593.html" title="第二十七章 这……这是竹子?">第二十七章 这……这是竹子?</a></dd><dd><a href="23411594.html" title="第二十八章 压力才是动力">第二十八章 压力才是动力</a></dd><dd><a href="23411595.html" title="第二十九章 举重若轻">第二十九章 举重若轻</a></dd>
<dd><a href="23411596.html" title="第三十章 来吧!">第三十章 来吧!</a></dd><dd><a href="23411597.html" title="第三十一章 耻辱啊!">第三十一章 耻辱啊!</a></dd><dd><a href="23411598.html" title="第三十二章 运气逆天">第三十二章 运气逆天</a></dd><dd><a href="23411599.html" title="第三十三章 打倒白小纯!">第三十三章 打倒白小纯!</a></dd>
<dd><a href="23411600.html" title="第三十四章 草木碾压">第三十四章 草木碾压</a></dd><dd><a href="23411601.html" title="第三十五章 又见许宝财">第三十五章 又见许宝财</a></dd><dd><a href="23411602.html" title="第三十六章 小乌龟称霸!">第三十六章 小乌龟称霸!</a></dd><dd><a href="23411603.html" title="第三十七章 举轻若重">第三十七章 举轻若重</a></dd>

目标是把书的章节名和章节链接提取出来

def contents(url, b_name):link = url[:-10]print (link)links = []r = requests.get(url)r.encoding = "utf-8"bsObj = BeautifulSoup(r.text, "lxml").findAll("dd")for i in bsObj:i = link + i.a["href"] #把内链合并成完整的链接。links.append(i)

现在让我们来看看章节页面的源代码是怎样的吧
966959-20161125155217956-803116896.png

<div class="kwei"></div><div class="nrad250left"><script>show_kw1();</script></div>
<div class="kwei2"></div><div class="nrad250right"><script>show_kw2();</script></div>
<div class="kwei3"></div><div class="nrad250left2"><script>show_kw3();</script></div>
<!--章节内容开始-->&nbsp;&nbsp;&nbsp;&nbsp;帽儿山,位于东林山脉中,山下有一个村子,民风淳朴,以耕田为生,与世隔绝。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;清晨,村庄的大门前,整个村子里的乡亲,正为一个十五六岁少年送别,这少年瘦弱,但却白白净净,看起来很是乖巧,衣着尽管是寻常的青衫,可却洗的泛白,穿在这少年的身上,与他目中的纯净搭配在一起,透出一股子灵动。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;他叫白小纯。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;

提取出一个章节的全部文字,返回一个包含全部文字的字符串

def section(url):r = requests.get(url)r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").find(id="content")print (bsObj)结果:
<div id="content" name="content">
<div></div>
<div class="kwei"></div><div class="nrad250left"><script>show_kw1();</script></div>
<div class="kwei2"></div><div class="nrad250right"><script>show_kw2();</script></div>
<div class="kwei3"></div><div class="nrad250left2"><script>show_kw3();</script></div>
<!--章节内容开始-->    帽儿山,位于东林山脉中,山下有一个村子,民风淳朴,以耕田为生,与世隔绝。<br/><br/>。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。略   D410211<!--章节内容结束-->
<div>
</div>
<script src="/js/cpc2.js" type="text/javascript"></script>
<div class="bottem">
<div class="adhtml"><script>show_htm2();</script></div>
<p>小技巧:按 回车[Enter]键 返回章节目录,按 ←键 回到上一章,按 →键 进入下一章。</p>
<a href="23410365.html">上一章 </a>← <a href="index.html" title="一念永恒最新章节目录">章节目录</a> → 
<a href="23410367.html">下一章</a>
<p> </p>
<div class="adhtml"><script>show_htm3();</script></div>
</div>
</div>

这里有一个问题,返回的内容包含太多不需要的东西,接下来配合使用正则表达式我觉得会容易一些

def section(url):r = requests.get(url)r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").find(id="content")print (str(bsObj))content = re.compile(r"<!--章节内容开始-->(.*)<!--章节内容结束-->").search(str(bsObj))#把章节内容提取出来content = re.compile("<br/><br/>").sub("\n", content.group(1))#把网页的<br/><br/>替换成换行符return content

然后汇总全部章节内容。写入TXT文件。

def contents_load(books, f_name = "电子书"):contents = []contents.append(f_name+"\n")for i in books:contents.append(i[1]+"\n")contents.append(section(i[0]))print(i[1], "下载成功")f = open(f_name+".txt", "w", encoding="utf-8")f.writelines(contents)效果:
第一章 一觉醒来整个世界都变了 下载成功
第二章 果然我穿越的方式不对吗? 下载成功
第三章 孙思邈是我“道弟” 下载成功
第四章 原来穿越者也可以被打脸 下载成功
第五章 一觉醒来世界又变了 下载成功
。。。。。

现在爬虫在网络良好的状况下基本可以正常运行了,不过下载速度有点慢,接下来我们使用多线程加快速度,再使用面对对象的程序设计。注意文件编码方式需要指定utf-8。
多线程参看菜鸟教程

import requests
from bs4 import BeautifulSoup
import re
import threadingclass load_book(object):def __init__(self,book_name):self.b_name = book_nameself.b_link = self.b_link_load()self.b_directory = self.directory()self.content = {}def b_link_load(self):params = {"q": self.b_name, "click": 1, "entry": 1, "s": 7818637081234473025, "nsid": ""}url = "http://so.sanjiangge.com/cse/search"r = requests.get(url, params=params)r.encoding = "utf-8"if r.url == "http://www.baidu.com/search/error.html":return Falseelse:bsObj = BeautifulSoup(r.text, "lxml").findAll("a", {"cpos": "title"})[0]return bsObj["href"]def directory(self):link = self.b_link[:-10]links = []r = requests.get(self.b_link)r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").findAll("dd")for i in bsObj:url = link + i.a["href"]links.append((url, i.get_text()))return linksdef section_load(self, links):for i in links:r = requests.get(i[0])r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").find(id="content")content = re.compile(r"<!--章节内容开始-->(.*)<!--章节内容结束-->").search(str(bsObj))  # 把章节内容提取出来content = re.compile("<br/><br/>").sub("\n", content.group(1))  # 把网页的<br/><br/>替换成换行符self.content[i[1]]=content[:-8]def contents_load(self,loops=10):threads = []nloops = range(loops)task_list = []task_size = len(self.b_directory)//loops+1for i in nloops:#分割任务try:task_list.append(self.b_directory[i*task_size:(i+1)*task_size])except:task_list.append(self.b_directory[i*task_size:])for i in nloops:t = threading.Thread(target=self.section_load, args=([task_list[i]]))threads.append(t)for i in nloops:threads[i].start()for i in nloops:threads[i].join()def write_txt(self):f = open(self.b_name, "w",encoding="utf-8")f.write(" "*20+self.b_name+"\n")for i in self.b_directory:title = "\n"+" "*20+i[1]+"\n"f.write(title)f.write(self.content[i[1]])f.close()if __name__ == '__main__':book = load_book("游仙镜")book.contents_load(20)book.write_txt()

运行效果;
966959-20161125155350096-1364165831.png
嗯,具体运行过程中hui出现网络异常,以及部分章节为空页的情况,为了使程序正常运行还需要进行错误的处理。

import requests
from bs4 import BeautifulSoup
import re
import threading
import timeclass load_book(object):def __init__(self,book_name):self.b_name = book_nameself.b_link = self.b_link_load()self.b_directory = self.directory()self.content = {}def b_link_load(self):params = {"q": self.b_name, "click": 1, "entry": 1, "s": 7818637081234473025, "nsid": ""}url = "http://so.sanjiangge.com/cse/search"try:r = requests.get(url, params=params)r.encoding = "utf-8"if r.url == "http://www.baidu.com/search/error.html":return Falseelse:bsObj = BeautifulSoup(r.text, "lxml").findAll("a", {"cpos": "title"})[0]return bsObj["href"]except:print("获取目录失败,一秒后重试,失败链接:",url,params)time.sleep(1)self.b_link_load()def directory(self):link = self.b_link[:-10]links = []r = requests.get(self.b_link)r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").findAll("dd")for i in bsObj:try:url = link + i.a["href"]links.append((url, i.get_text()))except TypeError:print(i,"获取章节链接错误")return linksdef section_load(self, links):for i in links:try:r = requests.get(i[0])r.encoding = "gbk"bsObj = BeautifulSoup(r.text, "lxml").find(id="content")content = re.compile(r"<!--章节内容开始-->(.*)<!--章节内容结束-->").search(str(bsObj))  # 把章节内容提取出来content = re.compile("<br/><br/>").sub("\n", content.group(1))  # 把网页的<br/><br/>替换成换行符self.content[i[1]] = content[:-8]print(i[1],"抓取完成")except (TypeError,AttributeError):print("*"*10,"%s章节错漏"% i[1])except :print("*"*10,"%s抓取错误,重试中"% i[1])links.insert(0,i)def contents_load(self,loops=10):threads = []nloops = range(loops)task_list = []task_size = len(self.b_directory)//loops+1for i in nloops:#分割任务try:task_list.append(self.b_directory[i*task_size:(i+1)*task_size])except:task_list.append(self.b_directory[i*task_size:])for i in nloops:t = threading.Thread(target=self.section_load, args=([task_list[i]]))threads.append(t)for i in nloops:threads[i].start()for i in nloops:threads[i].join()def write_txt(self):print("开始制作txt文档")f = open(self.b_name+".txt", "w", encoding="utf-8")f.write(" " * 20 + self.b_name + "\n")for i in self.b_directory:try:title = "\n\n" + " " * 20 + i[1] + "\n"f.write(title)f.write(self.content[i[1]])except KeyError:print("*" * 10, "缺失章节为:", i[1])f.close()if __name__ == '__main__':book = load_book("美食供应商")book.contents_load(10)book.write_txt()

966959-20161125155513581-473200688.png

好了现在基本可以正常使用了,不过还有很多不足。希望可以和更多的人交流。

可以改进的功能

  1. 使用多个站点进行搜索
  2. 缺失章节使用其他站点数据尝试弥补缺失
  3. 制作图形界面
  4. 加入进度条
  5. 加入发送邮件功能,使制作的电子书可以直接发送到kindle上

转载于:https://www.cnblogs.com/jikeboy/p/6101933.html

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

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

相关文章

【转】最实用的IT类网站及工具大集合

转自&#xff1a;http://www.cnblogs.com/annie00/p/5753507.html 1.聚合数据 大家在开发过程中&#xff0c;可能会用到各种各样的数据&#xff0c;想找一些接口来提供一些数据。比如天气预报查询&#xff0c;火车时刻表查询&#xff0c;彩票查询&#xff0c;身份证查询等等。有…

大型网站架构演变和知识体系

from http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什…

关于动画培养灵感的网站

直接点解图片就能进入对应的国外的网站&#xff1a; 下面这个网站是视频播放的哦&#xff0c;挺好看的。 当然这个英文网站在国内也有翻译的blog&#xff1a;http://www.jianshu.com/p/1858a8733ba3

大型网站技术架构 大纲

本文内容大部分来自《大型网站技术架构》,这本书很值得一看&#xff0c;强烈推荐。网站系统架构层次如下图所示&#xff1a;1.前端架构前端指用户请求到达网站应用服务器之前经历的环节&#xff0c;通常不包含网站业务逻辑&#xff0c;不处理动态内容。浏览器优化技术并不是优化…

knewone最新分享购物网站模板

演示效果&#xff1a;http://www.erdangjiade.com/templates/390 效果图片&#xff1a;

DTCMS 网站管理系统

dtcms适合开发一些简单小型网站 开发的过程中遇见了各种问题&#xff0c;下面总结下我遇见的问题 1.遇见提示未开启生成静态功能 在系统设置里面将“伪URL重写”为“生成静态”可以解决 2.在生成静态页面的时候提示生成页面完成&#xff0c;但是右下角却显示失败 这个可能是在新…

oracle em 此网站,Oracle 11g em启动报此网站的安全证书有问题的解决方案

今天配置完Oracle 11gR2 em后&#xff0c;在IE中输入https://kermart:1158/em直接报错&#xff0c;打不开提示&#xff1a;“证书错误&#xff0c;此网站安全证书有问题”&#xff0c;在网上找了好久没有找到解决的方案&#xff0c;其中有人说要卸载win7的windows补丁3KKB26612…

商城模板网站html5手机端_网站建设商城模板设计排版不同,但不可缺少的重要板块都会有 - 企业建站...

有的企业建网站&#xff0c;是为了宣传产品、树立企业形象&#xff0c;此类多为建设企业官方网站&#xff1b;有的企业建网站&#xff0c;销售产品是根本&#xff0c;此类都建设商城网站。建设网站又有两种方法&#xff0c;一类模板建站&#xff0c;一类定制建站。对于网站建设…

list的contains方法为什么不好使_为什么你的网站优化效果不好?

当新手网站管理员优化他们的网站&#xff0c;他们不能总是产生良好的结果。是他们的优化方法使用不好&#xff0c;还是网站本身有问题&#xff0c;比如苏州网站优化&#xff0c;哪里有困难&#xff0c;为什么经常做不好&#xff0c;长期没有排名的网站&#xff0c;优化效果不好…

做网站用什么语言_外贸独立站卖家如何做多语言网站SEO?

在各国经济文化交流的频繁和跨境业务数量增长的背景下&#xff0c;想要实现海外营销&#xff0c;获得更多的关注和收益&#xff0c;外贸卖家们就必须针对目标市场进行网站的多语言优化&#xff0c;针对新的国家或地区进行策略的制定网站内容本地化&#xff0c;仅翻译网站内的文…

如何集成varnish到已有的网站架构

如何集成varnish到已有的网站架构 在我们现有的架构中通常是已经成熟稳定的架构&#xff0c;如何将高性能的缓存服务器部署在已有的环境上呢&#xff0c;同时部署容易&#xff0c;如何始终让用户看到的是最新的内容&#xff0c;即便是缓存命中的状态&#xff1f; 因此&#xff…

activemq 各种版本区别_响应式网站和PC+手机端网站有什么区别?

企业建站普遍会遇到这样一个选择难题&#xff1a;网站选择什么类型&#xff1f;常见的类型分为3种&#xff1a;PC端&#xff0c;PC手机端&#xff0c;响应式。PC端大家都知道&#xff0c;主要的选择难点是后两种有什区别。今天小编就帮大家来分析一下响应式网站和PC手机端网站的…

阿根廷最大社交网站Taringa遭遇大规模数据泄漏,超过2800万用户数据暴露

本文讲的是阿根廷最大社交网站Taringa遭遇大规模数据泄漏&#xff0c;超过2800万用户数据暴露&#xff0c;如果你有Taringa&#xff08;也被称为“拉丁美洲的Reddit”&#xff09;网站账号&#xff0c;那么请注意&#xff0c;你的账户详细信息可能已经在大规模数据泄漏事件中泄…

实现网站验证码切换功能

实现网站验证码切换功能 一、样例 样例1、 样例2、 二、实现原理 三、实现代码 com.fry.servlet.VerifyCodeServlet 1 package com.fry.servlet;2 3 import javax.imageio.ImageIO;4 import javax.servlet.ServletException;5 import javax.servlet.annotation.WebServlet;6 im…

从零开始编写自己的C#框架(25)——网站部署

导航 1、关掉访问保护 2、发布网站 3、复制网站到服务器 4、添加新网站 5、设置网站访问权限 6、设置文件夹访问权限 7、控制可更新文件夹执行权限 8、设置“应用程序池”.net版本与模式 9、附加数据库 10、添加数据库访问用户 11、设置数据库链接 12、部署注意事项 对于网站的…

linux系统怎么重启网络连接wifi密码,怎么查看linux连接wifi的密码?_网站服务器运行维护,linux,wifi...

如何使用外部硬盘安装linux系统&#xff1f;_网站服务器运行维护使用外部硬盘安装linux系统的方法&#xff1a;首先将格式化的U盘和固态硬盘连接到电脑上并按F9&#xff1b;然后从菜单选择U盘启动并按enter&#xff1b;接着按linux minit程序安装系统并选择中文&#xff1b;最后…

织梦网站调用变量失败_浙江栢塑科技解析织梦被挂马被黑解决流程

织梦被黑恶意挂马并不奇怪&#xff0c;本身织梦程序案例漏洞过多&#xff0c;如不做好安全更新或备份&#xff0c;造成数据丢失并影响排名。 一个SEOVIP同学遇到织梦的问题&#xff0c;接下来把处理的流程记录下来&#xff0c;帮助大家解决问题。 1&#xff0c;分析网站源码&am…

3格式是什么意思_推荐一个万能格式转换网站

老Y在以前的文章中推荐过一个专注格式转换的网站→推荐一个万能的在线格式转换网站&#xff0c;功能非常的强大。也推荐过一个PC端的转换神器→办公利器&#xff08;PDF工具|格式转换|图片编辑|文字识别|图片处理…&#xff09;今天老Y再推荐一个国内的功能同样强大的格式转换网…

一些常用的网站——Mark

2019独角兽企业重金招聘Python工程师标准>>> CDN加速&#xff1a; 又拍云&#xff1a;http://www.bootcdn.cn/ 百度&#xff1a;http://cdn.code.baidu.com/ 新浪&#xff1a;http://lib.sinaapp.com/ 七牛云存储&#xff1a;https://www.staticfile.org/ 转载于:ht…

网站备案那些事----云里雾里知多少?

前言&#xff1a;备案流程几大步 文章目录&#xff1a; 1、购买域名 1.1、国内外几个域名提供商推荐 1.2、域名购买时需要提交的信息 1.3、域名购买后需要提交哪些材料 2、确定网站文件存储空间是购买还是自备 2.1、网站文件存储空间购买的话该如何备案 2.2、网站文件存储空间为…