content

02.scrapy框架持久化存储

无人久伴 提交于 2019-11-29 17:43:32
1.基于终端指令的持久化存储   保证爬虫文件parse方法中有可迭代对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储   scrapy crawl 爬虫名称 -o xxx.json   scrapy crawl 爬虫名称 -o xxx.xml   scrapy crawl 爬虫名称 -o xxx.csv 2.基于管道的持久化存储   scrapy框架中已经为我们专门集成好了高效,便捷的持久化操作功能,我们直接使用即可.要想使用scrapy的持久化操作功能,我们首先来认识如下两个文件:   items.py : 数据结构模板文件.定义数据属性   pipelines.py:管道文件.接收数据(items),进行持久化操作 持久化流程:   1.爬虫文件爬取到数据后,需要将数据封装到items对象中   2.使用yield关键字将items对象提交给pipelines管道进行持久化操作   3.在管道文件中的process_item方法中接受爬虫文件提交过来的item对象,然后编写持久化存储的代码将item对象中存储的数据进行持久化存储.   4.在settings.py配置文件中开启管道 小试牛刀:将糗事百科首页中的段子和作者数据爬取下来,然后进行持久化存储.

移动端布局

一笑奈何 提交于 2019-11-29 16:20:48
1.滚动条默认是在html上的,移到body上 html{ width: 100%; height: 100%; overflow: hidden; } body{ width: 100%; height: 100%; overflow: auto; } 2.高清屏1px边框还原 //因为像素比是放大的,缩放比可以缩小,只要相乘为1就能得到1px var pixelRatio = 1 / window.devicePixelRatio; //通过js动态设置视口的缩放比 document.querySelector('meta[name="viewport"]').setAttribute('content','width=device-width,initial-scale=' + pixelRatio + ', maximum-scale=' + pixelRatio + ', minimum-scale=' + pixelRatio + ', user-scalable=no'); // 在devicePixelRatio = 3 时==> <meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0

Django之学员管理三

为君一笑 提交于 2019-11-29 14:15:37
Django之学员管理三    web框架的本质:     本质是客户端和服务端的交互。用socket实现。     socket客户端(浏览器)       2、发送ip和端口,http://www.baidu.com:80/index/ (http://www.baidu.com:80) 为ip和端口,(/index/ )是url。客户端往服务端发送请求时,是要分post和get两种请求方式。       4、接受响应,普通的响应就是正常的拿到响应体浏览器是处理呈现,而重定向是要再发一次http请求,进行一次跳转才可以。     socket服务端(服务器)       1、服务端socket先运行起来进行监听 while循环来持续监听ip和端口,等待客户连接。       3、接受请求,处理并返回相应的结果,返回的本质是一堆字符串。返回的有响应头和响应体。还有一种响应方式,是重定向返回,在重定向返回里是没有响应体的,只有响应头。在响应头里有一区别是多了一个location,在location里定义要响应跳转的url。    django的web框架:     a、创建project:django-admin startproject mysite     b、配置:模板,静态文件,csrf     c、路由关系:url-》函数     d、视图函数:         def

网页静态化

前提是你 提交于 2019-11-29 14:06:12
为啥要网页静态化 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据。另外网页静态化还有利于SEO。 另外我们如果将网页以纯静态化的形式展现,就可以使用Nginx这样的高性能的 web 服务器来部署。 Nginx 可以承载 5 万的并发,而 Tomcat 只有几百。 Test.ftl <#--我只是一个注释,我不会有任何输出 --> ${name},你好。${message} <h3>assigne指令</h3> <#assign linkman="周先生"> 联系人:${linkman} <#assign info={"mobile":"13301231212",'address':'北京市昌平区王府街'} > 电话:${info.mobile} 地址:${info.address} <h3>if指令</h3> <#if success=true> 你已通过实名认证 <#else> 你未通过实名认证 </#if> <h3>list指令</h3> ----商品价格表----<br> <#list goodsList as goods> ${goods_index+1} 商品名称: ${goods.name} 价格:${goods.price}<br> </#list>

页面静态化

此生再无相见时 提交于 2019-11-29 14:03:35
freemarker页面静态化介绍 FreeMarker原理    FreeMarker是一个基 于Java的开发包和类库的一种将模板和数据进行整合并输出文本的通用工具,FreeMarker实现页面静态化的原理是:将页面中所需要的样式写入到 FreeMarker模板文件中,然后将页面所需要的数据进行动态绑定并放入到Map中,然后通过FreeMarker的模板解析类process()方 法完成静态页面的生成 为啥要网页静态化 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道。 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息,这样的情况同样也适用于使用网页静态化来解决。 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据。另外网页静态化还有利于 SEO 。 另外我们如果将网页以纯静态化的形式展现,就可以使用 Nginx 这样的高性能的 web 服务器来部署。 Nginx 可以承载 5 万的并发,而 Tomcat 只有几百。 Freemarker入门案例 Test.ftl <html> <head> <meta charset="utf-8"> <title>Freemarker入门小DEMO </title

python 反射

僤鯓⒐⒋嵵緔 提交于 2019-11-29 13:56:19
反射 描述 反射就是指在程序运行时,动态的去确定对象的类型,并且可以通过字符串的的形式去调用对应的属性,方法,导入模块, 是一种基于字符串的事件驱动 举一个例子: class Student: def __init__(self): self.name = 'mhy' self.price = '5000' obj1 = Student() content = input('>>>:') # 这里输入的name是字符串 # 如果不知道反射,我们平常都是这么根据输入调用的 if content == 'name': print(obj1.name) elif content == 'price': print(obj1.price) 但是上面的方法,我们如果要调用成百上千的个方法或者属性,不得死了,所以就有了反射这种方法 python提供了几个内置函数来解决这种事情 getattr() hasattr() 例如上面的例子,我们现在可以这样做,代码如下 对象的反射 getattr(对象,字符串形式属性或者方法名) 返回对象中属性名对应的值 hasattr(对象,字符串形式属性或者方法名) 返回的是一个 bool 值,判断对象中是否存在属性 反射属性 ​ val = getattr(对象,'属性名') val就是属性的值 class Student: def __init__(self)

CSS水平垂直居中常见方法总结(转)

回眸只為那壹抹淺笑 提交于 2019-11-29 13:12:41
1.元素水平居中 margin: 0 auto; 居中不好使的原因: 1、元素没有设置宽度,没有宽度怎么居中嘛! 2、设置了宽度依然不好使,你设置的是行内元素吧 实例1: <div class="box"> <div class="content"> 哇!居中了 </div> </div> <style type="text/css"> .box { background-color: #FF8C00; width: 300px; height: 300px; margin: 0 auto; } .content { background-color: #F00; width: 100px; height: 100px; line-height: 100px;//文字在块内垂直居中 text-align: center;//文字居中 margin: 0 auto; } </style> 2.元素水平垂直居中 方案1:position 元素已知宽度 父元素设置为:position: relative; 子元素设置为:position: absolute; 距上50%,据左50%,然后减去元素自身宽度的距离就可以实现 示例 2: <div class="box"> <div class="content"> </div> </div> .box { background-color:

六、jQuery与Ajax的应用

六月ゝ 毕业季﹏ 提交于 2019-11-29 12:28:25
Ajax全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),它并不是指一种单一的技术,而是有机地利用了一系列交互式网页应用相关的技术所形成的结合体。它的出现,揭开了无刷新更新页面的新时代,并有代替传统的web方式和通过隐藏的框架来进行异步提交的趋势,是web开发应用的一个里程碑。 jQuery中的Ajax jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法。 一、load()方法 1、载入HTML文档 load()方法是jQuery中最为简单和常用的Ajax方法,能载入远程HTML代码并插入DOM中。结构为,load(url,[data],callback) url:类型为string 请求HTML页面的URL地址。 data:可选 类型为 Object 发送至服务器的key/value数据 callback:可选 类型为Function 请求完成时间的回调函数,无论请求成功或失败 $("#resText").load("test.html"); 2、帅选载入的HTMl文档 如果只需要加载某个页面的某些元素,那么可以使用load()方法的URL参数来达到目的

HTML

点点圈 提交于 2019-11-29 12:04:15
HTML Hyper Text Makeup Language 超文本标记语言 超文本:可以表示图片,视频.... 标记:图片文字,等可以表示超链接 HTML文档结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>标题标签</title> </head> <body> <h1>我的第一个标题</h1> <p>我的第一个段落。</p> </body> </html> <!DOCTYPE html> 文档声明头,表示使用哪个HTML版本编译,声明为 HTML5 文档 元素是 HTML 页面的根元素,lang表示用了什么语言,表示用了英文,HTML是最外层的标签,他表示网页内容的开始 元素包含了文档的元(meta)数据,如 定义网页编码格式为 utf-8 。(网页的基本信息) 标签 意义 title 定义网页的标题 style 定义内部样式 script 定义JS和引用外部的JS文件 link 引用外部的表文件或者样式 meta 定义网页原信息,针对搜索引擎和更新频度的描述和关键词,用户不可见 meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。 http-equiv属性

初试ASP.NET Web API/MVC API(附Demo)

早过忘川 提交于 2019-11-29 11:58:44
写在前面 HTTP RESTful 创建Web API 调用Web API 运行截图及Demo下载   ASP.NET Web API是​​一个框架,可以很容易构建达成了广泛的 HTTP 服务客户端,包括浏览器和移动设备。是构建 RESTful 应用程序的理想平台的.NET框架。   上面是微软对Web API给出的定义,其中包含两个关键字:HTTP和RESTful,其实从这一方面,大家就可以看出Web API和它的同胞兄弟:WebService和WCF有些不同了。 HTTP   对于HTTP大家都不是很陌生,因为我们每天浏览网页填写的URL就是HTTP开头,但只是知道有这个东西,确没有想过它是什么,就好像我们对世间万物有着模糊的认识,但认识东西的确很少。   也可以从另一方面去理解,曾经看一个电视节目,有个嘉宾在录制的过程中,突然抬起头对着天花板仰望,然后主持人很惊讶问他在干吗?他说:我在思考宇宙有没有尽头?主持人接着问:那宇宙有没有尽头?他淡然的回答道:有就有,没有就没有。当然观众和主持人都笑作一团,你会笑吗?透过现象看本质,其实这个思想和老庄的思想很合拍,扯远了。 HTTP即超文本传送协议。 超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。