三星note8出货量出货量全球第一,可为什么身边缺很少有人用

比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
关于提高浏览器渲染页面速度的建议
关键字:Web
  怎样尽可能的缩短上页面渲染的时间,文章从以下几方面着手:
  写出高效的代码
  避免使用css表达式
  把css文件放在页面顶部
  指定页面图片的尺寸
  页面头部标明文档编码
  一,写出高效的css代码
  首先弄清浏览器解析html代码的过程:构建一个dom树,页面要显示的各元素都会创建到这个dom树当中。每当一个新元素加入到这个dom树当中,浏览器便会通过css引擎查遍css样式表,找到符合该元素的样式规则应用到这个元素上。css引擎查找样式表,对每条规则都按从右到左的顺序去匹配。
  了解过程后,我们可以看出可以从两方面优化我们的css代码:1,定义的css样式规则条数越少越好,所以赶紧删除css文件中不必要的样式定 义;2,优化每条规则的选择符书写方式,尽量让css引擎一看就知道这个规则是否需要应用到当前这个元素上,让引擎少走不必要的弯路。
  如以下几种效率不高的css书写方式:
  body * {...} hide-scrollbars * {...}
  b, 用标签做关键选择符
  ul li a {...} #footer h3 {...} * html #atticPromo ul li a {...}
  c, 画蛇添足的写法
  ul#top_blue_nav {...} form#UserLogin {...}
  d, 给非连接标签添加 :hover 伪类,这会对用了strict doctype的页面在IE7和下变的很慢。
  h3:hover {...} .foo:hover {...} #foo:hover {...} div.faa :hover {...}
  优化建议:
  a, 避免使用通配符;
  b, 让css引擎快速辨别该规则是否适用于当前元素:多用id或class选择符,少用标签选择符;
  c, 不要画蛇添足把id和class或标签和class等连着写;
  d, 尽量避免使用后代选择符,去除不必要的祖先元素,可以考虑使用class选择符来替换后代选择符;
  /*给无序和有序的li定义不同颜色,你可能会这样写:*/ ul li {color:} ol li {color:} /*给li添加class,这样定义效率会更高:*/ .unordered--item {color:} .ordered-list-item {color:}
  e, 避免给非连接标签添加 :hover 伪类。
  二,避免使用css表达式
  css表达式仅在ie浏览器下才起作用,已在ie8后不推荐使用,因为它会严重影响页面性能:任何时候,不管任何一个事件被触发,例如窗口的 resize 事件,鼠标的移动等等,css表达式都会重新计算一遍。
  三,把css文件放在页面顶部
  把外联或内联样式表放在body部分会影响页面渲染的速度,因为浏览器只有在所有样式表下载完成后才会继续下载页面其他内容。另外,内联样式表(放在
[ 责任编辑:jj ]
去年,手机江湖里的竞争格局还是…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。[Python]爬虫技术:(JavaScript渲染)动态页面抓取超级指南_Datartisan数据工匠_传送门
[Python]爬虫技术:(JavaScript渲染)动态页面抓取超级指南
Naren Aryan
Datartisan数据工匠
点击上方“Datartisan数据工匠”可订阅哦!当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息。但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据。此时,如果我们仍采用常规方法从中抓取数据,那么我们将一无所获。浏览器知道如何处理这些代码并将其展现出来,但是我们的程序该如何处理这些代码呢?接下来,我将介绍一个简单粗暴的方法来抓取含有 JavaScript 代码的网页信息。大多数人利用lxml和BeautifulSoup这两个包来提取数据。本文中我将不会介绍任何爬虫框架的内容,因为我只利用最基础的lxml包来处理数据。也许你们会好奇为啥我更喜欢lxml。那是因为lxml利用元素遍历法来处理数据而不是像BeautifulSoup一样利用正则表达式来提取数据。本文中我将介绍一个非常有趣的案例——之前我突然发现我的文章出现在最近的 Pycoders weekly issue 147中,因此我想爬取 Pycoders weekly 中所有档案的链接。很明显,这是一个含有 JavaScript 渲染的网页。我想要抓取网页中所有的档案信息和相应的链接信息。那么我该怎么处理呢?首先,我们利用 HTTP 方法无法获得任何信息。import requestsfrom lxml import html# storing responseresponse = requests.get('/archive')# creating lxml tree from response bodytree = html.fromstring(response.text)# Finding all anchor tags in responseprint tree.xpath('//div[@class="campaign"]/a/@href')当我们运行上述代码时,我们无法获得任何信息。这怎么可能呢?网页中明明显示那么多档案的信息。接下来我们需要考虑如何解决这个问题?如何获取内容信息?接下来我将介绍如何利用 Web kit 从 JS 渲染网页中获取数据。什么是 Web kit呢?Web kit 可以实现浏览器所能处理的任何事情。对于某些浏览器来说,Web kit就是其底层的网页渲染工具。Web kit 是QT库的一部分,因此如果你已经安装QT和PyQT4库,那么你可以直接运行之。你可以利用命令行来安装该软件库:sudo apt-get install python-qt4现在所有的准备工作已经完成,接下来我们将使用一个全新的方法来提取信息。解决方案我们首先通过 Web kit 发送请求信息,然后等待网页被完全加载后将其赋值到某个变量中。接下来我们利用lxml从 HTML 数据中提取出有效的信息。这个过程需要一点时间,不过你会惊奇地发现整个网页被完整地加载下来了。import sysfrom PyQt4.QtGui import *from PyQt4.Qtcore import *from PyQt4.QtWebKit import *class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()类Render可以用来渲染网页,当我们新建一个Render类时,它可以将url中的所有信息加载下来并存到一个新的框架中。url = '/archive/'# This does the magic.Loads everythingr = Render(url)# Result is a QString.result = r.frame.toHtml()利用以上的代码我们将 HTML 结果储存到变量result中,由于lxml无法直接处理该特殊的字符串数据,因此我们需要转换数据格式。# QString should be converted to string before processed by lxmlformatted_result = str(result.toAscii())# Next build lxml tree from formatted_resulttree = html.fromstring(formatted_result)# Now using correct Xpath we are fetching URL of archivesarchive_links = tree.xpath('//div[@class="campaign"]/a/@href')print archive_links利用上述代码我们可以获得所有的档案链接信息,接下来我们可以利用这些 Render和这些URL链接来提取文本内容信息。Web kit 提供了一个强大的网页渲染工具,我们可以利用这个工具从 JS 渲染的网页中抓取出有效的信息。本文中我介绍了一个如何从 JS 渲染的网页中抓取信息的有效方法,这个工具虽然速度比较慢,但是却非常简单粗暴。我希望你会喜欢这篇文章。现在你可以将该方法运用到任何你觉得难以处理的网页中。祝一切顺利。原文链接://ultimate-guide-for-scraping-javascript-rendered-web-pages/原文作者:Naren Aryan译者:fibears
觉得不错,分享给更多人看到
Datartisan数据工匠 微信二维码
分享这篇文章
3月11日 19:04
Datartisan数据工匠 最新头条文章
Datartisan数据工匠 热门头条文章

我要回帖

更多关于 三星手机2017 出货量 的文章

 

随机推荐