机网页文章采集器是一款功能强大的工具,可以帮助用户快速、准确地收集和保存网页上的文章内容。无论是新闻、博客、论坛还是其他类型的网页,只要用户使用手机网页文章采集器,就能轻松地将这些内容保存下来,方便随时查阅。
1.方便实用
手机网页文章采集器的操作简单,只需要用户在浏览器中安装插件或者使用专门的APP即可。用户可以通过简单的操作,将感兴趣的文章保存到手机上,随时随地阅读。不需要担心网络连接问题或者临时无法访问某个网站的情况。
2.精准抓取
手机网页文章采集器可以精准抓取网页上的文章内容,并自动去除广告、评论等干扰信息。用户不需要手动复制粘贴,也不会遗漏任何重要内容。这样节省了用户大量的时间和精力,提高了工作效率。
3.多格式支持
手机网页文章采集器支持多种格式的保存方式,包括文本、HTML、PDF等。用户可以根据自己的需求选择合适的格式,方便后续的整理和分享。同时,采集器还支持将文章导入到其他应用程序中进行编辑和处理。
4.自动更新
手机网页文章采集器可以自动更新已经保存的文章内容,保持用户获取到的信息始终是最新的。用户无需手动去检查每个网页是否有更新,也不需要再次下载保存已经读过的文章。这样大大提高了用户的阅读体验。
5.多设备同步
手机网页文章采集器支持多设备之间的同步功能,用户可以在不同的设备上随时随地访问已经保存的文章。无论是在手机、平板还是电脑上,都能够方便地查阅自己收集的内容,提高工作和学习效率。
6.智能分类
手机网页文章采集器可以根据用户的设置自动对保存的文章进行分类整理。用户可以设置关键词、标签等信息,采集器会根据这些信息将文章归类存储,方便用户后续查找和管理。
7.隐私保护
手机网页文章采集器注重用户隐私保护,不会收集用户个人信息或者泄露用户浏览记录。所有数据都保存在本地设备上,并进行加密保护,确保用户的信息安全。
8.多语言支持
手机网页文章采集器支持多种语言,可以满足不同用户的需求。无论是中文、英文还是其他语言的网页,都能够准确识别和保存其中的文章内容。
9.免费使用
手机网页文章采集器提供免费使用的服务,用户可以随时下载安装并开始使用。无需付费或者购买高级功能,即可享受到便捷的文章保存和阅读体验。
手机网页文章采集器是一款功能强大、操作简单、实用便捷的工具,可以帮助用户更好地收集和管理网页上的文章内容。无论是对于工作学习,还是对于个人兴趣爱好,都能够带来极大的帮助和便利。赶快下载安装手机网页文章采集器,开始你的文章收集之旅吧!
对于初学编程的朋友来说,这篇文章有点长,而且会有点难懂。但是请不要放弃,我尽量以通俗的语言解释相关的编程概念,这里只讲解编写一个游戏需要的相关编程概念(如需要会在后面的文章中随时补充相关概念),对其余未涉及的编程概念大家可以自行搜索学习。本文都是简单的编程概念,请耐心看完,如有疑问欢迎与我交流。本人水平有限,如有错误欢迎指正。
正如有人的地方就有江湖,有浏览器的地方就有JavaScript。那么什么是JavaScript呢?JavaScript 是世界上最流行的脚本语言,它适用于PC、笔记本电脑、平板电脑和手机。JavaScript 是一种轻量级的编程语言,JavaScript 是可插入HTML 页面的代码,JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行,JavaScript 很容易学习,没有想象中的那么复杂。
一、如何在网页中添加JavaScript代码
HTML 中的脚本必须位于<script>与</script>标签之间,有两种方式,第一种方式,在<script>与</script>标签之间直接添加JavaScript代码,例如:<script type="text/javascript">alert("Hello World!");</script>,打开含有上述代码的网页将显示一个对话框(alert是一个函数,作用是弹出一个含有信息的对话框),如下图所示:
第二种方式是把JavaScript脚本保存到外部文件中,这样代码可以被多个网页使用。外部 JavaScript 文件的文件扩展名是js。如以外部文件方式引用JavaScript,需要在<script>标签的 "src" 属性中设置该.js文件位置及名称, 例如:
<html>
<body onload="main()">
<script src="first.js"></script>
</body>
</html>
first.js文件代码如下:
function main(){
alert("Hello World!");
}
打开这个网页,显示的结果与上图一致。其中<body>标签中的onload="main()"表示网页加载完毕后调用main()函数(后面会介绍什么是函数)。
二、JavaScript变量
变量用来存储值或计算结果,JavaScript使用关键字var来定义变量,使用等号来为变量赋值,例如:
var x, length;
x = 5;
length = 6;
执行以上语句后,变量x的值为5,变量length的值为6。(提示:为保持代码可读性建议每行以;结尾,每行开头适当添加空格缩进)
变量名约定:JavaScript变量名必须以字母、下划线_或美元符$开头,后续的字符可以是字母、数字、下划线或美元符(数字是不允许作为首字符出现的,以便 JavaScript 可以轻易区分开标识符和数字),注意:变量名区分大小写。
注意:JavaScript变量名不能是保留字(详细的保留字请自行搜索),否则会出现语法错误提示,如下图:
三、注释
为了增强代码的可读性,可以对相应代码进行注释,有两种方式,第一种:多行注释,以"/*"开头,然后增加注释文字,最后以"*/"结尾,例如:
第二种:单行注释,以"//"开头,只能添加一行注释文字,例如:
四、数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等,例如:
其中数字、字符串类型较简单,数组、对象类型较复杂,下面再简单说说数组和对象类型。
1、数组
JavaScript 数组(Array)是有序数据的集合,数组中的每个成员被称为元素(Element),每个元素的名称(键)被称为数组下标(Index),注意:下标从0开始。JavaScript 常用的定义(创建或者声明)数组方法有两种:构造数组和数组直接量。
a4[2]表示访问a4数组的第三个元素(下标从0开始),即3。
数组的元素可以为数字、字符串、对象,还可以是数组,元素为数组的数组称为多维数组,下面是一个二维数组(可以把它想像成一个9行8列的表格)
如何定义这个数组呢?分两步来定义,首先定义一个数组(有9个元素):
var a=new Array(9);
然后将这个数组的元素依次定义成一个数组
a[0]=new Array(8);
a[1]=new Array(8);
……
a[8]=new Array(8);
即,先将数组的行定义出来,再定义每一行中的元素。现在要访问数组a的元素的话需要两个坐标——行、列坐标,例如:访问第5行第4列的元素,a[4][3]
2、对象
对象可以存储复杂的数据,那么什么是对象呢?计算机程序设计教材上关于对象的定义比较抽象,用我自己的话来说,就是将客观世界中的事物特征和行为用计算机语言来描述并保存至一个变量中,这个变量就叫对象。以人为例,每个人的特征都不一样(性别、身高、体重……),但都有相同的行为(说话、行走、睡觉……)。常用的对象定义方式有两种:构造对象和直接定义对象,先看看构造对象的方法
上面是构造对象的一般方法,即先构造一个Object对象,然后再定义对象的属性(特征),接着定义对象的方法(行为),为遵循面向对象的程序设计方法,一般需要提供访问属性的方法,例如:获取年龄的方法getAge和修改年龄的方法setAge,注意这两个方法中的this表示的是当前对象。将以上代码复制到HTML文件<script></script>标签之间,保存并在浏览器里打开,控制台(chrome浏览器按F12键显示控制台)显示结果如下:
下面看看直接定义对象
将以上代码复制到HTML文件<script></script>标签之间,保存并在浏览器里打开,显示结果如下:
五、运算符
JavaScript常用的运算符有算术运算符、比较运算符和逻辑运算符
注意自增和自减运算符,如果运算符在变量前面则先执行自增(自减)运算,再将结果赋给x
注意:TRUE、FALSE表示真、假,用于条件判断,例如:if语句(见本文后面部分)。运算符的优先级为:算术运算符最高,比较运算符其次,逻辑运算符最低,可以通过小括号改变运算优先级。
六、函数
为了让代码能重复使用,把实现某一功能的代码写在一段代码块内(以{开头,}结尾),这段代码就叫函数,函数的定义如下:
function 函数名(参数1,参数2,……){
实现函数功能的代码
……
}
举个例子,编写一个实现两个数相加的函数,代码块如下:
将以上代码复制到HTML页面中的<script></script>之间,保存并在浏览器中打开,显示结果如下:
函数的定义以function开头,后面跟一个空格,然后是函数名,函数名遵循变量的命名方式,函数名后面是括号,括号内是函数的参数,可以没有参数,也可以有多个参数(多个参数之间用逗号隔开),如果需要返回计算结果,使用return语句返回(无需返回结果的话就不需要使用return语句)。
七、控制语句
1、条件判断
顾名思义,条件判断就是判断某一条件是否成立,然后再根据条件结果执行相应代码。常用的条件判断语句为if语句,有三种常用形式:if、if else、if else if else,如下所示:
以上代码运行结果如下:
2、循环
循环就是让一段代码反复执行,直到不满足循环条件而退出,常用的循环结构有三种for循环、while循环和do while循环,先看看for循环
for(语句1;语句2;语句3){
反复执行的代码
}
举个例子:
for (var i=0; i<5; i++){
console.log(i);
}
上面的例子在浏览器控制台显示如下:
0
1
2
3
4
上面的for循环语句1为var i=0;定义循环初始变量i并赋值0;循环语句2为i<5;是循环运行判断语句,判断当前循环变量i是否小于5;语句3是循环内的代码块执行完后执行的语句,即循环内代码块执行完后i的值加1,循环执行完5次后i的值为5(第1次,i=0),判断i<5时不成立,所以循环不会执行第6次。循环内的代码还可以是另一个循环,从而构成多重循环,以前面那个二维数组为例,看看二重循环的简单应用
运行结果如下:依次在控制台输出a[0][0]至a[8][7]的值
可不可以跳过循环?答案是可以,你可以使用break语句或continue语句来跳过循环,看下面的例子:
上面的continue语句表示不执行continue语句后面的语句,直接执行循环中的语句3,即i++,运行结果如下:
八、简单的类
类是面向对象程序设计语言最重要的一个功能,但是,很遗憾,JavaScript对类的支持不是很友好,我们需要自己实现类的相关功能。下面以一个简单的动物类为例简单介绍一下JavaScript的类实现(限于篇幅不能详细讲解),继承关系如下图所示:
假设动物有腿、翅膀、尾巴、喜欢的食物等属性,有行走、飞翔,显示喜欢食物等方法,先看看动物类的定义
很简单,注意fly和walk方法,它们又调用了子类的方法,下面看看如何实现子类继承父类的功能
是通过原型来实现继承,这种方法不是很好,但很简单,下面再看看子类的定义
定义了两个子类Cat和Bird,通过ExtendObj()函数实现继承,将上述代码复制到HTML页面内的<script></ script >标签之间并保存,打开网页将在控制台显示如下结果:
好了,终于将JavaScript基础知识介绍完了,接下来的文章将给大家介绍HTML5标准的Canvas基础知识,感谢你能坚持到最后,下次再见。
也许有人觉得抓手机的数据包都费劲,还搞什么自动化,而且肯定不简单。但我要告诉你的是,这一切都被一个叫Airtest的自动化测试软件给搞定了,你只需要把它一直运行着,你的手机上的所有操作,就都交给它了,直接就是点点点。
这里我们需要连接手机,由于小编有模拟器,为了不影响小编玩手机,所以我决定用Airtest模拟器来连接手机,打开模拟器,选择关于平板电脑,如图:
连击多次版本号,直到出现开发者选项功能,然后打开开发者选项下的USB调试,如图:
这样我们就开启了USB调试,下面我们Airtest来远程连接我们的模拟器,如图:
这里有一个知识需要向大家说明的就是,我们连接的远程端口号不是随便弄的,而是根据模拟器的不同而使用的不同的端口号,模拟器和端口号一一对应关系如下:
这样选择好我们的主机地址和端口号后就可以进行连接了,然后我们点击connect就可以直接连接了,如图:
由于我们是使用模拟器连接,所以图上第一项最好选上,不然模拟器即使连接上了也是没有画面的。如果还是没有画面,那可能是因为屏幕捕捉程序“yosemite.apk”没有下载到模拟器中,在Airtest中找出来,直接拖动到模拟器中,再次连接模拟器,打开一看,如图:
成功连接上了。下面就上面三个选项跟大家简单描述下:
use javacap:#解决IDE中手机画面黑屏的问题
use ADB orientation :#解决IDE中屏幕旋转的问题
use ADB touch:#解决IDE中屏幕无法点击的问题
这里我们不光可以和模拟器建立连接,还可以和我们已打开或者未打开的应用进行连接操作,我们可以点击选定窗口,选择指定的应用程序,这样程序就会被加载到Airtest中去了,这里我打开了360浏览器,如图:
可以看到被加载进去了,我们可以在里面浏览了,但是此时我们的桌面上的浏览器却不翼而飞,这就是因为Airtest正在使用我们的浏览器,当我们点击断开当前设备就可以关闭掉这个设备,此时便可以重新看到浏览器又回到了我们的桌面了,如图:
虽然模拟器很方便,但是毕竟很麻烦,而且万一你的电脑配置不行的话,那么模拟器可能开不了几个应用就爆了,所以这里我们也要使用手机来连接Airtest,手机相比其它的连接方式略显复杂,下面请看我表演。
首先我们需要将数据线插入电脑的USB接口,然后还是打开开发者选项和USB调试;只不过手机可不像模拟器,除了以上选项要设置之外,我们还需要设置默认USB配置,并把它设为MIDI,默认USB配置就在USB调试的下方,如图:
然后选择MIDI,如图:
这样手机端的开发者选项设置算是全部完结了,但是这样还是远远不够的,你还需要一大堆操作,是的,没错,一大堆,这款IDE最大的毛病就在这,正是验证了一句话,安装两小时,编程两分钟,哈哈哈哈。
因为小编手机是Vivo的,所以小编在网上下了一个Vivo的驱动程序包,如果你的手机跟小编不是一个版本,那么请看下面:
三星: http://www.samsung.com/cn/support/downloads
华为: http://consumer.huawei.com/minisite/HiSuite_cn/
小米: http://bigota.d.miui.com/tools/xiaomi_usb_driver.rar
Vivo: http://zs.vivo.com.cn/download.php
魅族:http://care.meizu.com/
一加:http://service.oneplus.cn/
华硕: http://www.asus.com.cn/support/
联想: http://www.lenovocare.com.cn/default.aspx
LG: http://www.lg.com/us/support/software-firmware-drivers
索尼: https://developer.sony.com/develop/drivers/
摩托罗拉: https://mobilesupport.lenovo.com/us/en/solution/MS88481
HTC: http://www.htc.com/us/software/htc-sync-manager/
谷歌: https://developer.android.com/studio/run/win-usb.html
黑莓: https://swdownloads.blackberry.com/Downloads/entry.do?code=4EE0932F46276313B51570F46266A608
戴尔: http://www.dell.com/support/home/us/en/04/Products?app=drivers&lwp=rt
宏基: https://www.acer.com/ac/en/US/content/drivers
如果上面还是没有,那么你可能需要一款兼容所有设备的驱动软件,驱动人生或者驱动精灵,随意挑选一个即可。
如果我们在Airtest中要输入文字的话,使用手机自带的输入法是没办法输入的,必须使用我们前面提到的“yosemite”输入法,这里在我们安装好手机的驱动后会自动下载到你的手机的,你只需要安装即可。如图:
然后我们再设置系统默认输入法为这个输入法即可,如图:
虽然设置好了后我们可以输入文字了,但是有时候的话可能鼠标点击的不是很准确,那么这个时候,我们还需要设置模拟位置,同样在开发者选项中,如图:
这样设置好后,回到我们的Airtest主界面,我们就可以看到已经出现了设备的名称和状态了,如图:
还是如模拟器一样,点击Connect 勾选Use Javacap,这时设备就已经成功连接上了,如图:
这里我们无需准备数据线也可以连接上我们的安卓机,只要你三个步骤完成好了,就简单了。我们首先需要知道安卓真机的IP地址,可在这里查看,如图:
然后我们使用这个IP地址在Airtest中建立连接,如图:
注意这里的端口号是5555,如果你写其它的端口的话也可以运行,但是它是无法监听TCP/IP信息的,如果你想指定多个这样的端口,命令提示符输入如下命令即可:
adb tcpip 666#开启666端口
这里有个前提,就是手机必须和我们IDE所处在同一个Wifi网络环境下才行,否则是访问不到的。
这里我们双击脚本编辑窗,设置一个编辑器的脚本文件,如下:
设置完毕后返回即可看到如下画面:
然后我们就可以在这里面连接安卓机了,具体代码如下:
connect_device('Android://127.0.0.1:5037/手机IP地址:5555')#前面是本机号和端口后面就是你手机的IP地址了
请大家注意,这里同样需要安卓机子和IDE处在同一个WiFi网络环境下哦。
今天我们讲的是这款自动化工具的安装和界面功能的剖析,这个工具整体上来说,用法比较简单,就是安装坑太多,新手小白可能要花一些时间才能整明白,在此特与大家分享,愿大家学习之路更加平坦顺畅。下次我们再来讲讲IDE的妙用。
*请认真填写需求信息,我们会在24小时内与您取得联系。