当前位置: 首页 > news >正文

自己造网站wordpress 招聘 插件

自己造网站,wordpress 招聘 插件,微信开发社区平台,建设网站 报告书访问flyai.club#xff0c;一键创建你的人工智能项目作者#xff1a;大蛇王https://blog.csdn.net/t8116189520/article/details/801655891、大数据的文件读取① 利用生成器generator②迭代器进行迭代遍历#xff1a;for line in file2、迭代器和生成器的区别1)迭代器是一个…访问flyai.club一键创建你的人工智能项目作者大蛇王https://blog.csdn.net/t8116189520/article/details/801655891、大数据的文件读取① 利用生成器generator②迭代器进行迭代遍历for line in file2、迭代器和生成器的区别1)迭代器是一个更抽象的概念任何对象如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象它在容器中逐个访问容器内元素next()也是python的内置函数。在没有后续元素时next()会抛出一个StopIteration异常2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数只是在需要返回数据的时候使用yield语句。每次next()被调用时生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)区别生成器能做到迭代器能做的所有事,而且因为自动创建了__iter__()和next()方法,生成器显得特别简洁,而且生成器也是高效的使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出StopIteration异常3、装饰器的作用和功能引入日志函数执行时间统计执行函数前预备处理执行函数后的清理功能权限校验等场景缓存4、简单谈下GILGlobal Interpreter Lock(全局解释器锁)Python代码的执行由Python 虚拟机(也叫解释器主循环CPython版本)来控制Python 在设计之初就考虑到要在解释器的主循环中同时只有一个线程在执行即在任意时刻只有一个线程在解释器中运行。对Python 虚拟机的访问由全局解释器锁(GIL)来控制正是这个锁能保证同一时刻只有一个线程在运行。在多线程环境中Python 虚拟机按以下方式执行1. 设置GIL2. 切换到一个线程去运行3. 运行a. 指定数量的字节码指令或者b. 线程主动让出控制(可以调用time.sleep(0))4. 把线程设置为睡眠状态5. 解锁GIL6. 再次重复以上所有步骤在调用外部代码(如C/C扩展函数)的时候GIL 将会被锁定直到这个函数结束为止(由于在这期间没有Python 的字节码被运行所以不会做线程切换)。5、find和grepgrep命令是一种强大的文本搜索工具grep搜索内容串可以是正则表达式允许对文本文件进行模式查找。如果找到匹配模式grep打印包含模式的所有行。find通常用来再特定的目录下搜索符合条件的文件也可以用来搜索特定用户属主的文件。6、线上服务可能因为种种原因导致挂掉怎么办?linux下的后台进程管理利器 supervisor每次文件修改后再linux执行 service supervisord restart7、如何提高python的运行效率使用生成器;关键代码使用外部功能包(Cythonpylnlnepypypyrex);针对循环的优化--尽量避免在循环中访问变量的属性8、常用Linux命令ls,help,cd,more,clear,mkdir,pwd,rm,grep,find,mv,su,date9、Python中的yield用法yield简单说来就是一个生成器这样函数它记住上次返 回时在函数体中的位置。对生成器第 二次(或n 次)调用跳转至该函 次)调用跳转至该函数。10、Python是如何进行内存管理的一、垃圾回收python不像CJava等语言一样他们可以不用事先声明变量类型而直接对变量进行赋值。对Python语言来讲对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量内存地址的分配是在运行时自动判断变量类型并对变量进行赋值)。二、引用计数Python采用了类似Windows内核对象一样的方式来对内存进行管理。每一个对象都维护这一个对指向该对对象的引用的计数。当变量被绑定在一个对象上的时候该变量的引用计数就是1(还有另外一些情况也会导致变量引用计数的增加),系统会自动维护这些标签并定时扫描当某标签的引用计数变为0的时候该对就会被回收。三、内存池机制Python的内存机制以金字塔行-1-2层主要有操作系统进行操作第0层是C中的mallocfree等内存分配和释放函数进行操作;第1层和第2层是内存池有Python的接口函数PyMem_Malloc函数实现当对象小于256K时有该层直接分配内存;第3层是最上层也就是我们对Python对象的直接操作;在 C 中如果频繁的调用 malloc 与 free 时,是会产生性能问题的.再加上频繁的分配与释放小块的内存会产生内存碎片. Python 在这里主要干的工作有:如果请求分配的内存在1~256字节之间就使用自己的内存管理系统,否则直接使用 malloc.这里还是会调用 malloc 分配内存,但每次会分配一块大小为256k的大块内存.经由内存池登记的内存到最后还是会回收到内存池,并不会调用 C 的 free 释放掉.以便下次使用.对于简单的Python对象例如数值、字符串元组(tuple不允许被更改)采用的是复制的方式(深拷贝?)也就是说当将另一个变量B赋值给变量A时虽然A和B的内存空间仍然相同但当A的值发生变化时会重新给A分配空间A和B的地址变得不再相同11、描述数组、链表、队列、堆栈的区别?数组与链表是数据存储方式的概念数组在连续的空间中存储数据而链表可以在非连续的空间中存储数据;队列和堆栈是描述数据存取方式的概念队列是先进先出而堆栈是后进先出;队列和堆栈可以用数组来实现也可以用链表实现。12、你知道几种排序,讲一讲你最熟悉的一种?你是最棒的!web框架部分1.django 中当一个用户登录 A 应用服务器(进入登录状态)然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?如果用户在A应用服务器登陆的session数据没有共享到B应用服务器纳米之前的登录状态就没有了。2.跨域请求问题django怎么解决的(原理)启用中间件post请求验证码表单中添加{%csrf_token%}标签3.请解释或描述一下Django的架构对于Django框架遵循MVC设计并且有一个专有名词MVTM全拼为Model与MVC中的M功能相同负责数据处理内嵌了ORM框架V全拼为View与MVC中的C功能相同接收HttpRequest业务处理返回HttpResponseT全拼为Template与MVC中的V功能相同负责封装构造要返回的html内嵌了模板引擎4.django对数据查询结果排序怎么做降序怎么做查询大于某个字段怎么做排序使用order_by()降序需要在排序字段名前加-查询字段大于某个值使用filter(字段名_gt值)5.说一下DjangoMIDDLEWARES中间件的作用?答中间件是介于request与response处理之间的一道处理过程相对比较轻量级并且在全局上改变django的输入与输出。6.你对Django的认识?Django是走大而全的方向它最出名的是其全自动化的管理后台只需要使用起ORM做简单的对象定义它就能自动生成数据库结构、以及全功能的管理后台。Django内置的ORM跟框架内的其他模块耦合程度高。应用程序必须使用Django内置的ORM否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块但这就相当于要把装修完毕的房子拆除重新装修倒不如一开始就去毛胚房做全新的装修。Django的卖点是超高的开发效率其性能扩展有限;采用Django的项目在流量达到一定规模后都需要对其进行重构才能满足性能的要求。Django适用的是中小型的网站或者是作为大型网站快速实现产品雏形的工具。Django模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。7. Django重定向你是如何实现的?用的什么状态码?使用HttpResponseRedirectredirect和reverse状态码302,3018.ngnix的正向代理与反向代理?正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。反向代理正好相反对于客户端而言它就像是原始服务器并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间中的内容发送普通请求接着反向代理将判断向何处(原始服务器)转交请求并将获得的内容返回给客户端就像这些内容原本就是它自己的一样。9. Tornado 的核是什么?Tornado 的核心是 ioloop 和 iostream 这两个模块前者提供了一个高效的 I/O 事件循环后者则封装了 一个无阻塞的 socket 。通过向 ioloop 中添加网络 I/O 事件利用无阻塞的 socket 再搭配相应的回调 函数便可达到梦寐以求的高效异步执行。10.Django 本身提供了 runserver为什么不能用来部署?runserver 方法是调试 Django 时经常用到的运行方式它使用 Django 自带的WSGI Server 运行主要在测试和开发中使用并且 runserver 开启的方式也是单进程 。uWSGI 是一个 Web 服务器它实现了 WSGI 协议、uwsgi、http 等协议。注意 uwsgi 是一种通信协议而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的 Web 服务器。uWSGI 具有超快的性能、低内存占用和多 app 管理等优点并且搭配着 Nginx就是一个生产环境了能够将用户访问请求与应用 app 隔离开实现真正的部署 。相比来讲支持的并发量更高方便管理多进程发挥多核的优势提升性能。网络编程和前端部分1.AJAX是什么如何使用AJAX?ajax(异步的javascript 和xml) 能够刷新局部网页数据而不是重新加载整个网页。第一步创建xmlhttprequest对象var xmlhttp new XMLHttpRequest();XMLHttpRequest对象用来和服务器交换数据。第二步使用xmlhttprequest对象的open()和send()方法发送资源请求给服务器。第三步使用xmlhttprequest对象的responseText或responseXML属性获得服务器的响应。第四步onreadystatechange函数当发送请求到服务器我们想要服务器响应执行一些功能就需要使用onreadystatechange函数每次xmlhttprequest对象的readyState发生改变都会触发onreadystatechange函数。2. 常见的HTTP状态码有哪些?200 OK301 Moved Permanently302 Found304 Not Modified307 Temporary Redirect400 Bad Request401 Unauthorized403 Forbidden404 Not Found410 Gone500 Internal Server Error501 Not Implemented3. Post和get区别?GET请求请求的数据会附加在URL之后以?分割URL和传输数据多个参数用连接。URL的编码格式采用的是ASCII编码而不是uniclde即是说所有的非ASCII字符都要编码之后再传输。POST请求POST请求会把请求的数据放置在HTTP请求包的包体中。上面的itembandsaw就是实际的传输数据。因此GET请求的数据会暴露在地址栏中而POST请求则不会。2、传输数据的大小在HTTP规范中没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中对于GET特定的浏览器和服务器对URL的长度有限制。因此在使用GET请求时传输数据会受到URL长度的限制。对于POST由于不是URL传值理论上是不会受限制的但是实际上各个服务器会规定对POST提交数据大小进行限制Apache、IIS都有各自的配置。3、安全性POST的安全性比GET的高。这里的安全是指真正的安全而不同于上面GET提到的安全方法中的安全上面提到的安全仅仅是不修改服务器的数据。比如在进行登录操作通过GET请求用户名和密码都会暴露再URL上因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因此时的用户名和密码就很容易被他人拿到了。除此之外GET请求提交的数据还可能会造成Cross-site request frogery攻击。4.cookie 和session 的区别?1、cookie数据存放在客户的浏览器上session数据放在服务器上。2、cookie不是很安全别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多会比较占用服务器的性能考虑到减轻服务器性能方面应当使用COOKIE。4、单个cookie保存的数据不能超过4K很多浏览器都限制一个站点最多保存20个cookie。5、建议将登陆信息等重要信息存放为SESSION其他信息如果需要保留可以放在COOKIE中5.创建一个简单tcp服务器需要的流程1.socket创建一个套接字2.bind绑定ip和port3.listen使套接字变为可以被动链接4.accept等待客户端的链接5.recv/send接收发送数据爬虫和数据库部分1.scrapy和scrapy-redis有什么区别?为什么选择redis数据库?1) scrapy是一个Python爬虫框架爬取效率极高具有高度定制性但是不支持分布式。而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件可以让scrapy支持分布式策略Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。2) 为什么选择redis数据库因为redis支持主从同步而且数据都是缓存在内存中的所以基于redis的分布式爬虫对请求和数据的高频读取效率非常高。2. 你用过的爬虫框架或者模块有哪些?谈谈他们的区别或者优缺点?Python自带urlliburllib2第 三 方requests框 架Scrapyurllib和urllib2模块都做与请求URL相关的操作但他们提供不同的功能。urllib2.urllib2.urlopen可以接受一个Request对象或者url(在接受Request对象时候并以此可以来设置一个URL 的headers)urllib.urlopen只接收一个urlurllib 有urlencode,urllib2没有因此总是urlliburllib2常会一起使用的原因scrapy是封装起来的框架他包含了下载器解析器日志及异常处理基于多线程 twisted的方式处理对于固定单个网站的爬取开发有优势但是对于多网站爬取 100个网站并发及分布式处理方面不够灵活不便调整与括展。request 是一个HTTP库 它只是用来进行请求对于HTTP请求他是一个强大的库下载解析全部自己处理灵活性更高高并发与分布式部署也非常灵活对于功能可以更好实现.Scrapy优缺点优点scrapy 是异步的采取可读性更强的xpath代替正则强大的统计和log系统同时在不同的url上爬行支持shell方式方便独立调试写middleware,方便写一些统一的过滤器通过管道的方式存入数据库缺点基于python的爬虫框架扩展性比较差基于twisted框架运行中的exception是不会干掉reactor并且异步框架出错后是不会停掉其他任务的数据出错后难以察觉。3.你常用的mysql引擎有哪些?各引擎间有什么区别?主要 MyISAM 与 InnoDB 两个引擎其主要区别如下一、InnoDB 支持事务MyISAM 不支持这一点是非常之重要。事务是一种高级的处理方式如在一些列增删改中只要哪个出错还可以回滚还原而 MyISAM就不可以了;二、MyISAM 适合查询以及插入为主的应用InnoDB 适合频繁修改以及涉及到安全性较高的应用;三、InnoDB 支持外键MyISAM 不支持;四、MyISAM 是默认引擎InnoDB 需要指定;五、InnoDB 不支持 FULLTEXT 类型的索引;六、InnoDB 中不保存表的行数如 select count(*) from table 时InnoDB;需要扫描一遍整个表来计算有多少行但是 MyISAM 只要简单的读出保存好的行数即可。注意的是当 count(*)语句包含 where 条件时 MyISAM 也需要扫描整个表;七、对于自增长的字段InnoDB 中必须包含只有该字段的索引但是在 MyISAM表中可以和其他字段一起建立联合索引;八、清空整个表时InnoDB 是一行一行的删除效率非常慢。MyISAM 则会重建表;九、InnoDB 支持行锁(某些情况下还是锁整表如 update table set a1 whereuser like %lee%4.描述下scrapy框架运行的机制?从start_urls里获取第一批url并发送请求请求由引擎交给调度器入请求队列获取完毕后调度器将请求队列里的请求交给下载器去获取请求对应的响应资源并将响应交给自己编写的解析方法做提取处理1. 如果提取出需要的数据则交给管道文件处理;2. 如果提取出url则继续执行之前的步骤(发送url请求并由引擎将请求交给调度器入队列...)直到请求队列里没有请求程序结束。5.什么是关联查询有哪些?将多个表联合起来进行查询主要有内连接、左连接、右连接、全连接(外连接)6.写爬虫是用多进程好?还是多线程好? 为什么?IO密集型代码(文件处理、网络爬虫等)多线程能够有效提升效率(单线程下有IO操作会进行IO等待造成不必要的时间浪费而开启多线程能在线程A等待时自动切换到线程B可以不浪费CPU的资源从而能提升程序执行效率)。在实际的数据采集过程中既考虑网速和响应的问题也需要考虑自身机器的硬件情况来设置多进程或多线程7.数据库的优化?1. 优化索引、SQL 语句、分析慢查询;2. 设计表的时候严格根据数据库的设计范式来设计数据库;3. 使用缓存把经常访问到的数据而且不需要经常变化的数据放在缓存中能节约磁盘IO;4. 优化硬件;采用SSD使用磁盘队列技术(RAID0,RAID1,RDID5)等;5. 采用MySQL 内部自带的表分区技术把数据分层不同的文件能够提高磁盘的读取效率;6. 垂直分表;把一些不经常读的数据放在一张表里节约磁盘I/O;7. 主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来;8. 分库分表分机器(数据量特别大)主要的的原理就是数据路由;9. 选择合适的表引擎参数上的优化;10. 进行架构级别的缓存静态化和分布式;11. 不采用全文索引;12. 采用更快的存储方式例如 NoSQL存储经常访问的数据8.常见的反爬虫和应对方法?1).通过Headers反爬虫从用户请求的Headers反爬虫是最常见的反爬虫策略。很多网站都会对Headers的User-Agent进行检测还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制可以直接在爬虫中添加Headers将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫在爬虫中修改或者添加Headers就能很好的绕过。2).基于用户行为反爬虫还有一部分网站是通过检测用户行为例如同一IP短时间内多次访问同一页面或者同一账户短时间内多次进行相同操作。大多数网站都是前一种情况对于这种情况使用IP代理就可以解决。可以专门写一个爬虫爬取网上公开的代理ip检测后全部保存起来。这样的代理ip爬虫经常会用到最好自己准备一个。有了大量代理ip后可以每请求几次更换一个ip这在requests或者urllib2中很容易做到这样就能很容易的绕过第一种反爬虫。对于第二种情况可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站可以通过请求几次退出登录重新登录继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。3).动态页面的反爬虫上述的几种情况大多都是出现在静态页面还有一部分网站我们需要爬取的数据是通过ajax请求得到或者通过JavaScript生成的。首先用Fiddler对网络请求进行分析。如果能够找到ajax请求也能分析出具体的参数和响应的具体含义我们就能采用上面的方法直接利用requests或者urllib2模拟ajax请求对响应的json进行分析得到需要的数据。能够直接模拟ajax请求获取数据固然是极好的但是有些网站把ajax请求的所有参数全部加密了。我们根本没办法构造自己所需要的数据的请求。这种情况下就用seleniumphantomJS调用浏览器内核并利用phantomJS执行js来模拟人为操作以及触发页面中的js脚本。从填写表单到点击按钮再到滚动页面全部都可以模拟不考虑具体的请求和响应过程只是完完整整的把人浏览页面获取数据的过程模拟一遍。用这套框架几乎能绕过大多数的反爬虫因为它不是在伪装成浏览器来获取数据(上述的通过添加 Headers一定程度上就是为了伪装成浏览器)它本身就是浏览器phantomJS就是一个没有界面的浏览器只是操控这个浏览器的不是人。利seleniumphantomJS能干很多事情例如识别点触式(12306)或者滑动式的验证码对页面表单进行暴力破解等。9.分布式爬虫主要解决什么问题?1)ip2)带宽3)cpu4)io10.爬虫过程中验证码怎么处理?1.scrapy自带2.付费接口— End —
http://www.zqtcl.cn/news/480295/

相关文章:

  • 免费个人网站建站能上传视频吗中国舆情在线网
  • 网站开发项目的心得体会惠州建设厅网站
  • 网站小程序怎么做北京单位网站建设培训
  • 北京市专业网站建设广州安全教育平台登录账号登录入口
  • 广州做网站的价格三个关键词介绍自己
  • 基于工作过程的商务网站建设:网页制作扬州网站建设公元国际
  • wordpress著名网站微信公众号怎么做网站链接
  • 长沙网站建设大概多少钱深圳做网站网络营销公司
  • 融资平台排行榜企业网站seo运营
  • 英文手表网站南昌装修网站建设
  • 网站建设要懂哪些技术甘肃园区网络搭建
  • go做的网站微信跳转链接生成器免费
  • 网站开发中怎么设置快捷键怎样打开用sql做的网站
  • 做餐饮企业网站的费用短视频素材免费下载网站
  • 美食优秀设计网站制作网页网站
  • 提供网站建设教学视频做淘宝美工需要知道的网站
  • 百度云可以做网站吗织梦网站下载
  • 有没有一起做游戏棋牌网站的用wordpress做商城
  • 有没有如何做网站的书常州网站推广公司哪家好
  • 金融直播间网站开发专业定制网页设计
  • 装饰公司网站开发c 网站开发实例教程
  • 专业层析成像代做网站网站建设收获
  • saas云建站平台源码附近那里有做网站的
  • 网站开发接口成都学校网站建设
  • 商城网站策划火星建站和八亿建站
  • 如何使用模板做网站php精品网站建设
  • 建设一个网站的具体流程职业培训机构需要什么资质
  • 网站怎么做弹幕播放器自助免费网站制作
  • 网站咨询弹窗是怎么做的网站建设的目标客户
  • 搞好姓氏源流网站建设Wordpress 商城主题过于臃肿