首页 文章 精选 留言 我的

精选列表

搜索[快速入门],共10000篇文章
优秀的个人博客,低调大师

Python爬虫入门教程 42-100 爬取儿歌多多APP数据-手机APP爬虫部分

1. 儿歌多多APP简单分析 今天是手机APP数据爬取的第一篇案例博客,我找到了一个儿歌多多APP,没有加固,没有加壳,没有加密参数,对新手来说,比较友好,咱就拿它练练手,熟悉一下Fiddler和夜神模拟器是如何配合着使用的。 儿歌多多APP在豌豆荚的下载量还是可以的,一家做内容的APP。 2. APP安装和使用 APP直接去下载APK包就可以了,拖拽到夜神模拟器就安装成功了。在模拟器打开出现如下界面,表示已经可以开始操作了,非常儿童的APP。 3. 抓包测试 打开APP同时,打开Fiddler,首先测试一下网络是否正常,用模拟器自带的浏览器去访问百度,如果可以访问表示无问题,否则重新设置代理 运行软件过程中,注意观察Fiddler,如果出现JSON类型的API[接口],就要注意了,你想要的数据就在这里 我们点击链接,看Fiddler右侧显示内容

优秀的个人博客,低调大师

Python爬虫入门教程 38-100 教育部高校名单数据爬虫 scrapy

爬前叨叨 今天要爬取一下正规大学名单,这些名单是教育部公布具有招生资格的高校名单,除了这些学校以外,其他招生的单位,其所招学生的学籍、发放的毕业证书国家均不予承认,也就是俗称的野鸡大学! 网址是 https://daxue.eol.cn/mingdan.shtml 爬取完毕之后,我们进行一些基本的数据分析,套路如此类似,哈哈 这个小项目采用的是scrapy,关键代码 import scrapy from scrapy import Request,Selector class SchoolSpider(scrapy.Spider): name = 'School' allowed_domains = ['daxue.eol.cn'] start_urls = ['https://daxue.eol.cn/ming

优秀的个人博客,低调大师

程序性能优化入门锦集--设计+代码+JVM调优+数据库优化策略

关于优化是一项很大的内容。本文结合菜鸟结算项目优化点分析以及书籍《JAVA程序性能优化》阅读心得,给出个人觉得可供参考的优化思路,共涉及四个方面,分别是:设计篇、代码优化篇、JVM内存调优和数据库操作优化。若文中理解有误之处也欢迎底下评论指正。 所谓优化的目的不止是使得我们的程序更快,也使得我们遇到峰值情况应用会更加稳定可靠,程序优化在某个程度上也可以理解是功能保障的升级篇。优化可能只需要在几个很微小的地方做些许改动,但是优化可能是无穷的。那么不得不提优化点重点放在哪里?根据木桶原理我们知道系统中最终性能取决于系统中性能表现最差的组件,根据应用的特点不同,任何计算机资源都有可能成为系统瓶颈,其中最有可能成为系统瓶颈的计算资源如下: 磁盘IO:磁盘读写要比IO慢的多,低效的IO影响无疑是巨大的,个人优化想法是通过设计篇中“缓冲”部分来进

优秀的个人博客,低调大师

以太坊DApp开发入门教程——Node.js和truffle框架打造区块链投票系统

第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 —— 区块链投票系统。 通过本课程的学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译、部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成本课程,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前端开发语言:HTML/CSS/JavaScript Linxu命令行的使用 数据库的基本概念 课程的所有代码均已在Ubuntu(Trusty、Xenial)和 macOS 上测试过。 课程地址:http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=csdn20180207 第二节 课程简介 在本课程中,我们将会构建一个去中心化的(Decentralized)投票应用。利用这个投票应用, 用户可以在不可信(trustless)的分布环境中对特定候选人投票,每次投票都会被记录在区块 链上: 所谓去中心化应用(DApp:Dcentralized Application),就是一个不存在中心服务器 的应用。在网络中成百上千的电脑上,都可以运行该应用的副本,这使得它几乎不可能 出现宕机的情况。 基于区块链的投票是完全去中心化的,因此无须任何中心化机构的存在。 第三节 开发迭代 本课程将涵盖应用开发的整个过程,我们将通过三次迭代来渐进地引入区块链应用 开发所涉及的相关概念、语言和工具: Vanilla:在第一个迭代周期,我们不借助任何开发框架,而仅仅使用NodeJS来进行应用开发, 这有助于我们更好地理解区块链应用的核心理念。 Truffle:在第二个迭代周期,我们将使用最流行的去中心化应用开发框架Truffle进行开发。 使用开发框架有助于我们提高开发效率。 Token:在第三个迭代周期,我们将为投票应用引入代币(Token) —— 现在大家都改口 称之为通证了 —— 都是ICO惹的祸。代币是公链上不可或缺的激励机制,也是区块链 应用区别于传统的中心化应用的另一个显著特征。 为什么选择投票应用作为课程项目? 之所以选择投票作为我们的第一个区块链应用,是因为集体决策 —— 尤其是投票机制 —— 是以太坊的 一个核心的价值主张。 另一个原因在于,投票是很多复杂的去中心化应用的基础构件,所以我们选择了投票应用作为学习区块链 应用开发的第一个项目。 课程地址:http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=csdn20180207 第四节 初识区块链 如果你熟悉关系型数据库,就应该知道一张数据表里可以包含很多行数据记录。例如,下面的数据表中 包含了6条交易记录: 本质上,区块链首先就是一个分布式(Distributed)数据库,这个数据库维护了一个不断增长的记录列表。 现在,让我们对数据进行批量(batch)存储,比如每批 100 行,并将各存储批次连接起来,是不是就像一条链? 在区块链里,多个数据记录组成的批次就被称为块(block),块里的每一行数据记录就被称为交易(transaction): 最开始的那个块,通常被称为创世块(genesis block),它不指向任何其他块。 不可篡改性 区块链的一个显著特点是,数据一旦写入链中,就不可篡改重写。 在传统的关系型数据库中,你可以很容易地更新一条数据记录。但是,在区块链中,一旦数据写入就无法 再更新了 —— 因此,区块链是一直增长的。 那么,区块链是如何实现数据的不可篡改特性? 这首先得益于哈希(Hash)函数 —— 如果你还没接触过哈希函数,不妨将它视为一个数字指纹的计算函数: 输入任意长度的内容,输出定长的码流(指纹)。哈希函数的一个重要特性就是,输入的任何一点微小变化,都会 导致输出的改变。因此可以将哈希值作为内容的指纹来使用。 你可以点击这里进一步了解哈希函数。 由于区块链里的每个块都存储有前一个块内容的哈希值,因此如果有任何块的内容被篡改,被篡改的块之后 所有块的哈希值也会随之改变,这样我们就很容易检测出区块链的各块是否被篡改了。 去中心化的挑战 一旦完全去中心化,在网络上就会存在大量的区块链副本(即:全节点),很多事情都会变得比之前中心化 应用环境复杂的多,例如: 如何保证所有副本都已同步到最新状态? 如何保证所有交易都被广播到所有运行和维护区块链副本的节点计算机上? 如何防止恶意参与者篡改区块链 ...... 在接下来的课程中,通过与经典的C/S架构的对比,我们将逐步理解去中心化应用的核心思路, 并掌握如何构建以太坊上的去中心化应用。 第五节 C/S架构以服务器为中心 理解去中心化应用架构的最好方法,就是将它与熟悉的Client/Server架构进行对比。如果你是一个web开发者, 应该对下图很了解,这是一个典型的Client/Server架构: 一个典型web应用的服务端通常由 Java,Ruby,Python 等等语言实现。前端代码由 HTML/CSS/JavaScript 实现。 然后将整个应用托管在云端,比如 AWS、Google Cloud Platform、Heroku....,或者放在你租用的一个VPS主机上。 用户通过客户端(Client)与 web 应用(Server)进行交互。典型的客户端包括浏览器、命令行工具(curl、wget等)、 或者是API访问代码。注意在这种架构中,总是存在一个(或一组)中心化的 web 服务器,所有的客户端都需要 与这一(组)服务器进行交互。当一个客户端向服务器发出请求时,服务器处理该请求,与数据库/缓存进行交互, 读/写/更新数据库,然后向客户端返回响应。 这是我们熟悉的中心化架构。在下一节,我们将会看到基于区块链的去中心化架构的一些显著区别。 第六节 去中心化架构——彼此平等的节点 下图给出了基于以太坊的去中心化应用架构: 你应该已经注意到,每个客户端(浏览器)都是与各自的节点应用实例进行交互,而不是向 一个中心化的服务器请求服务。 在一个理想的去中心化环境中,每个想要跟DApp交互的人,都需要在他们的计算机或手机上面运行 一个的完整区块链节点 —— 简言之,每个人都运行一个全节点。这意味着,在能够真正使用一个 去中心化应用之前,用户不得不下载整个区块链。 不过我们并非生活在一个乌托邦里,期待每个用户都先运行一个全节点,然后再使用你的应用是不现实的。 但是去中心化背后的核心思想,就是不依赖于中心化的服务器。所以,区块链社区已经出现了 一些解决方案,例如提供公共区块链节点的Infura, 以及浏览器插件Metamask等。通过这些方案, 你就不需要花费大量的硬盘、内存和时间去下载并运行完整的区块链节点,同时也可以利用去中心化 的优点。我们将会以后的课程中对这些解决方案分别进行评测。 第七节 以太坊——世界计算机 以太坊是一种区块链的实现。在以太坊网络中,众多的节点彼此连接,构成了以太坊网络: 以太坊节点软件提供两个核心功能:数据存储、合约代码执行。 在每个以太坊全节点中,都保存有完整的区块链数据。以太坊不仅将交易数据保存在链上,编译后 的合约代码同样也保存在链上。 以太坊全节点中,同时还提供了一个虚拟机来执行合约代码。 交易数据 以太坊中每笔交易都存储在区块链上。当你部署合约时,一次部署就是一笔交易。当你为候选者投票时,一次投票 又是另一笔交易。所有的这些交易都是公开的,每个人都可以看到并进行验证。这个数据永远也无法篡改。 为了确保网络中的所有节点都有着同一份数据拷贝,并且没有向数据库中写入任何无效数据,以太坊 目前使用工作量证明(POW:Proof Of Work)算法来保证网络安全,即通过矿工挖矿(Mining)来达成共识(Consensus)—— 将数据同步到所有节点。 工作量证明不是达成共识的唯一算法,挖矿也不是区块链的唯一选择。现在,我们只需要了解,共识是指各节点 的数据实现了一致,POW只是众多用于建立共识的算法中的一种,这种算法需要通过矿工的挖矿来实现非可信环境下的 可信交易。共识是目的,POW是手段。 合约代码 以太坊不仅仅在链上存储交易数据,它还可以在链上存储合约代码。 在数据库层面,区块链的作用就是存储交易数据。那么给候选者投票、或者检索投票结果的逻辑放在哪儿呢? 在以太坊的世界里,你可以使用Solidity语言来编写业务逻辑/应用代码(也就是合约:Contract), 然后将合约代码编译为以太坊字节码,并将字节码部署到区块链上: 编写合约代码也可以使用其他的语言,不过Solidity是到目前为止最流行的选择。 以太坊虚拟机 以太坊区块链不仅存储数据和代码,每个节点中还包含一个虚拟机(EVM:Ethereum Virtual Machine)来执行 合约代码 —— 听起来就像计算机操作系统。 事实上,这一点是以太坊区别于比特币(Bitcoin)的最核心的一点:虚拟机的存在使区块链迈入了2.0 时代,也让区块链第一次成为应用开发者友好的平台。 JS开发库 为了便于构建基于web的DApp,以太坊还提供了一个非常方便的JavaScript库web3.js,它封装了以太坊节点的API 协议,从而让开发者可以轻松地连接到区块链节点而不必编写繁琐的RPC协议包。所以,我们可以在常用的JS框架 (比如 reactjs、angularjs 等)中直接引入该库来构建去中心化应用: PC端课程地址: http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=csdn20180207 如果想加入 以太坊技术开发群可以加 微信:cuixuebin2 ,拉你入群。

优秀的个人博客,低调大师

IBM 送给 AI 开发者的礼物:傻萌的入门级 Watson 机器人

两个月前的 Watson 开发者大会上,IBM 发布了 TJBot ——能组装出上图所示纸板机器人的 DIY 工具组合。可不要因为傻萌、简陋的外表小看它,它本质上是基于 Watson 的可编程 AI 。早在发布纸箱版本之前,遍布全球的开发者就已创造出激光切割和 3D 打印的 TJBot:包括南非、肯尼亚、意大利、德国、瑞士、巴基斯坦、加拿大和香港。雷锋网(公众号:雷锋网)获知,多个开发者团队表示有兴趣与 IBM 合作,为 TJBot 设计新的使用场景:从用于机器人/认知课程的教学,到关怀老年人、开发谈话代理的企业级解决方案。 IBM 发布的如何制作 TJBot、如何对 它编程的指令集(被称为“菜单”),在Instructables在线开发者社区广受好评。该项目在社区主要页面都有体现,并已收到 21000 份用户评论。TJBot

优秀的个人博客,低调大师

入门级到企业级:云服务器支持「共享型」升级「独享型」

云服务器ECS在2016年全面推出独享型服务器家族,提供了提供更好的SLA,更强的带宽,更稳定的计算能力。非常适合对业务稳定性具有高要求的严肃企业场景使用,有效保障核心服务器的性能指标。具体细节参见 独享型实例与共享型实例FAQ。 主力的独享规格包含: 通用型 (sn1):处理器与内存资源配比为1:2,高计算资源占比, 适用于Web 前端服务器、数据分析、批量计算、视频编码、高性能科学和工程应用 计算型 (sn2):处理器与内存资源配比为1:4,具有均衡的计算、内存、网络资源, 适用于各种类型和规模的企业级应用,中小型数据库系统、缓存、搜索集群计算集群、依赖内存的数据处理。 内存型 (se1) 处理器与内存配比为1:8,高内存资源占比, 适用于高性能数据库、内存数据库、数据分析与挖掘、分布式内存缓存、Hadoop、Spark群集以及其他企

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册