首页
壁纸
友情
关于
统计
推荐
Search
1
通过华为交换机的辅助,增加“ikuai爱快软路由”wan的线路
667 阅读
2
小米AC2100(红米ac2100)刷写Breed不死固件
458 阅读
3
nginx“高逼格” 帮你快速隐藏php后缀名
454 阅读
4
华为S5700交换机升级记录
271 阅读
5
Joe主题头像添加呼吸灯
252 阅读
食用技巧
食用软件
通信技术
交换机
软路由
网络技术
编程技术
Python学习
C学习
WEB学习
Python基础
Python爬虫知识
前端学习
后端学习
PHP学习
Linux
华为Datacom
IPv4技术
登录
Search
标签搜索
linux
Python
酷我音乐
第一篇文章
交换机技术
Joe
华为交换机
PHP
开机自启
爬虫
正则
Ubuntu
搭建教程
csv
数据分析
IP
加密
html
Jayson
累计撰写
23
篇文章
累计收到
1
条评论
首页
栏目
食用技巧
食用软件
通信技术
交换机
软路由
网络技术
编程技术
Python学习
C学习
WEB学习
Python基础
Python爬虫知识
前端学习
后端学习
PHP学习
Linux
华为Datacom
IPv4技术
页面
壁纸
友情
关于
统计
推荐
搜索到
23
篇与
Jayson
的结果
2022-10-24
HTML基础知识——学习记录
标题标签场景:在文章页面中,都离不开标题,用来突出显示文章的主题代码:h系列标签<h1>h1标签</h1> <h2>h2标签</h2> <h3>h3标签</h3> <h4>h4标签</h4> <h5>h5标签</h5> <h6>h6标签</h6>语义:1~6级标题,重要程度依次递减特点:文字加粗文字变大,h1->h6文字逐渐减小独占一行段落标签场景:在文章页面中,用于分段显示代码: <p>内容</p>语义:段落特点:段落之间存在间隙独占一行换行标签场景:让文字强制换行显示代码: <br> 语义:换行特点:单标签让文字强制换行文本格式化标签场景:需要让文字加粗,下划线,倾斜,删除线等效果代码:|标签|详细名称|说明|bstrong加粗uins下划线iem倾斜sdel删除线语义:突出重要性强调语境图片标签-场景:在网页中显示图片代码: <img src="" alt="">特点:单标签img标签需要展示对应的效果,需要借助标签的属性进行设置属性|属性|说明|alt单图片加载失败显示alt内容title当鼠标停留在图片时,才会显示title的内容(可用于其他标签)width/height图片的宽度和高度,当只设置一项的时候,图片会等比例缩放水平线标签场景:分割不同主题内容的水平线代码: <hr> 语义:主题的分割转换特点:单标签在页面中显示一条水平线音频标签介绍场景 在页面插入音频代码 <audio src="music.mp3" controls></audio>属性|属性名|功能|src音频的路径controls显示播放的控件autoplay自动播放(部分浏览器不支持)loop循环播放注意: 视频标签目前支持三种格式:MP3,Wav,Ogg视频标签介绍场景 在页面插入音频代码 <video src="music.mp4" controls></video>属性|属性名|功能|src音频的路径controls显示播放的控件autoplay自动播放(谷歌浏览器支持需要配置muted)loop循环播放注意: 视频标签目前支持三种格式:MP4,WebM,Ogg超链接场景 点击之后,从一个页面跳到另一个页面代码 <a href="目标网页">名字</a>特点:双标签,内部可以包裹内容如果需要a标签点击后去指定页面,需要设置a标签的href属性属性属性名:target属性值:目标网页的打开方式取值功能_self默认值,在当前窗口中跳转(覆盖原网页)_blank在新窗口中跳转(保留原网页)代码:<a href="#" target="_blank">JaysonBLog</a>列表标签无序列表场景: 在网页中表示一组无顺序的列表代码:<ul> <li>内容</li> </ul>标签组成:|标签名|说明|ul表示无序列表的整体,用于包裹li标签li表示无序标签的每一项,用于包含每一行的内容 显示特点:列表的每一项前默认显示圆点 注意点:url标签中只允许包含li标签li标签可以包含任意内容 有序列表场景:在网页中表示一组有顺序的列表代码:<ol> <li>内容</li> </ol>标签组成:|标签名|说明|ol表示有序列表的整体,用于包裹li标签li表示有序列表的每一项,用于包含每一项的内容 显示特点:列表的每一项前默认显示圆点 注意点:url标签中只允许包含li标签li标签可以包含任意内容 自定义列表场景:在网页的底部导航中通常会使用自定义列表代码:<dl> <dt>主题</dt> <dd>内容</dd> <dd>内容</dd> </dl>标签组成:|标签名|说明|dl表示自定义列表的整体,用于包裹dt/dd标签dt表示自定义列表的主题dd表示自定义列表的针对主题的每一项内容 显示特点: dd前会默认缩进效果 </li> <li>注意点: <ul> <li>dl标签中只允许包含dt/dd标签</li> <li>dt标签可以包含任意内容</li> </ul> </li>表格标签场景:在网页中以行+列表的单元格的方式整齐展示和数据代码:<table> <tr> <td>内容</td> <td>内容</td> <td>内容</td> </tr> </table>基本标签:|标签名|说明|table表格整体,可用于包裹多个trtr表格每行,可用于包裹tdtd表格单元格,可用于包裹内容<dl><dt>注意点:</dt><dd>标签的嵌套关系:table > tr > td <dd></dl>表格属性场景:设置表格基本展示效果常见相关属性:代码:<table border="2" width="300" height="200">|属性名|属性值|效果|border数字边框宽度width数字表格宽度height数字表格高度<dl><dt>注意点:</dt><dd>实际开发时针对样式效果推荐用css设置<dd></dl>表格标题和表头单元格标签场景:在表格中表示整体大标题和小一列小标题代码:<table> <caption>表格标题</caption> <tr> <th>表头</th> <th>表头</th> <th>表头</th> </tr> </table>其他标签:|标签名|名称|说明|caption表格大标题表示表格整体大标题,默认在表格整体顶部居中位置显示th表头单元格表示一列小标题,通常用于表格的第一行,默认内部文字加粗并居中<dl><dt>注意点:</dt><dd>caption标签书写在table标签内部<dd><dd>th标签书写在tr标签内部<dd></dl>表格的结构标签(了解)场景:让表格的内容结构分组,突出表格的不同部分(头部,主体,底部),使语义更加清晰结构标签|标签名|名称|thead表格头部tbody表格主体tfoot表格底部<dl><dt>注意点:</dt><dd>表格结构标签内部用于包裹tr标签<dd><dd>表格结构标签可以省略<dd></dl>合并单元格-代码实现合并步骤:明确合并哪几个单元格通过左上原则,确定保留谁删除谁上下合并 --> 保留最上面的单元格,删除其他的单元格 <tr> <td>小哥哥</td> <td rowspan="2">上下合并的单元格</td> <td>小哥哥真帅气</td> </tr> <tr> <td>小姐姐</td> <td>小姐姐真漂亮</td> </tr>左右合并 --> 保留最左面的单元格,删除其他的单元格<tr> <td>总结</td> <td colspan="2">左右合并的单元格</td> </tr> 给保留的其他单元格设置:跨行合并(rowspan)跨列合并(colspan)|属性名|属性值|说明|rowspan合并单元格个数跨行合并,将多行的单元格垂直合并colspan合并单元格个数跨列合并,将多列的单元格水平合并<dl><dt>注意点:</dt><dd>只有同一个结构标签中的单元格才能合并,不能跨结构标签合并(不能跨:thead,tbody,tfoot)<dd></dl>表单标签input系列标签基本介绍场景:在网页中显示收集用户信息的表单效果标签名:inputinput标签可以通过type属性值的不同,展现的不同效果type属性值: |标签名|type属性值|类型|说明||---| |input|text|文本框|用于输入单行文本| |input|password|密码框|用于输入密码| |input|radio|单选框|用于多选一| |input|checkbox|多选框|用于多选多| |input|file|文件选择|用于上传文件| |input|submit|提交按钮|用于提交| |input|reset|重置按钮|用于重置| |input|button|普通按钮|默认无功能,之后配合js添加功能| input系列标签-文本框场景:在网页中显示输入的单行文本的表格控件type属性值:text/password代码:<input type="text/password" placeholder="显示内容">常用属性:|属性名|说明|placeholder占位符,提示用户输入的内容input系列标签-单选框场景:在网页中显示多选一的单选表单控件type属性值:radio代码: <body> <input type="radio" name="rex"> <input type="radio" name="rex"> </body常用属性:|属性名|说明|name通过name进行分组,有相同的name属性值的单选框为一组,一组中同时只能有一个被选中checked默认选中(checkbox也适用)<dl><dt>注意点:</dt><dd>name属性值对于单选框有分组功能<dd><dd>有相同的name属性值的单选框为一组,一组中只能同时有一个被选中<dd></dl>input系列标签-文件选择场景:在网页中显示文件选择的表单控件type属性:file代码:<input type="file" multiple>常用属性:|属性名|说明|multiple多文件选择input系列标签-按钮场景:在网页中显示不同功能的按钮表单控件type属性值:|标签名|type属性值|类型|说明|inputsubmit提交按钮点击之后提交数据给后端服务器inputreset重置按钮点击之后恢复表单默认值inputbutton普通按钮默认无任何功能,之后搭配js添加功能<dl><dt>注意点:</dt><dd>如果需要实现以上按钮功能,需要配合form标签使用<dd><dd>form使用方法:用form标签把表单标签一起包裹起来<dd></dl>button按钮标签场景:在网页中显示用户点击的按钮标签名:buttontype属性值(同input的按钮一样):|标签名|type属性值|类型|说明|buttonsubmit提交按钮点击之后提交数据给后端服务器buttonreset重置按钮点击之后恢复表单默认值buttonbutton普通按钮默认无任何功能,之后搭配js添加功能<dl><dt>注意点:</dt><dd>谷歌浏览器中的button默认是提交按钮<dd><dd>button标签是双标签,便于包裹其他内容:文字,图片等<dd></dl>select下拉菜单标签场景:在网页中提供多个选择项的下拉菜单控件标签组成:select标签:下拉菜单的整体option标签:下拉菜单的每一项常见属性:selected:下拉菜单的默认选中textarea文本域标签场景:在网页中提供可输入多行文本的表单控件标签名: textrea常见属性|属性名|说明|cols规定了文本域内可见宽度rows规定了文本域内可见行数<dl><dt>注意点:</dt><dd>右下角可以拖拽改变大小<dd><dd>实际开发时针对于样式效果推荐css设置<dd></dl>label标签场景:常用于绑定内容与标签关系标签名:label使用方法①:使用label标签把内容(如文本)包裹起来在表单标签添加id属性在label标签的for属性中设置对应的id值<body> <input type="radio" name="hex" id="1"><label for="1">内容</label> <input type="radio" name="hex" id="2"><label for="2">内容</label> </body>使用方法②:直接使用label标签把内容(如:文本)和表单标签一起包裹起来需要把label标签和for标签删掉即可<body> <label> <input type="radio" name="sex">内容 </label> <hr> <label> <input type="radio" name="sex">内容 <hr> </label> </body>语义化标签没有语义化布局标签-div和span场景:实际开发网页会大量频繁使用div和span这两个没有语义的布局标签div标签:一行只显示一个(独占一行)span标签:一行可以显示多个有语义化的布局标签场景:在html5新版本中,推出了一些有语义的布局标签供开发者使用(手机端使用)标签:|标签名|语义|header网页头部nav网页导航footer网页底部aside网页侧边栏section网页区块article网页文章<dl><dt>注意点:</dt><dd>以上标签显示特点和div一致,但是比div多了不同语义<dd></dl>字符实体常见字符实体场景:在网页中展示特殊符号效果时,需要使用字符实体替代结构:&英文;常见字符实体:|显示结果|描述|实体名称|" "空格 <小于号<>大于号>&和号&"引号"'撇号'(IE不支持)
2022年10月24日
14 阅读
0 评论
0 点赞
2022-10-09
python用MD5加密方法
简介这篇文章主要介绍了python MD5加密的示例,帮助大家更好的利用python进行加密,感兴趣的朋友可以了解下什么是MD5Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。生成MD5方法# 方式一: pwd = '123456' # 生成MD5对象 md5 = hashlib.md5() # 对数据加密 md5.update(pwd.encode('utf-8')) # 获取密文 pwd = md5.hexdigest() print(pwd) #方式二: pwd = '123456' pwd = hashlib.md5(bytes(pwd,encoding = 'utf-8')) print(pwd.hexdigest()) # 输出结果 e10adc3949ba59abbe56e057f20f883e e10adc3949ba59abbe56e057f20f883eMD5加盐值(SALT)MD5加盐值(SALT)安全性相对高一些,不容易被破解# MD5加盐值(SALT) pwd = '123456' # 生成MD5对象 md5 = hashlib.md5(b'~!@@#!#$DFDT@#$@#') # 一下两种方式与上面效果等同 # md5 = hashlib.md5('~!@@#!#$DFDT@#$@#'.encode('utf-8')) # md5 = hashlib.md5(bytes('~!@@#!#$DFDT@#$@#',encoding='utf-8')) # # 对数据加密 md5.update(pwd.encode('utf-8')) # 获取密文 pwd = md5.hexdigest() print(pwd)63e87e46fc935f18abb6b38bb0376fee
2022年10月09日
8 阅读
0 评论
0 点赞
linux设置开机自启动
2022年09月16日
31 阅读
0 评论
0 点赞
2022-09-16
简介linux设置开机自启动的方法我简单说两种,一种是在rc.local添加,另一种是init.d文件里添加。这样就不用老是重启服务器的时候再重新运行程序,导致网站的某些功能用不了了!!linux设置开机自启动的方法:1. rc.local文件中添加自启动命令1. 执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令 2. 运行程序脚本:然后在文件最后一行添加要执行程序的全路径。 3. 例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh " '注意,你的命令应该添加在:exit 0 之前'2. 在/etc/init.d目录下添加自启动脚本linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。
Python生成随机头部------JaysonBlog
{mtitle title="Python生成随机"/}Python生成随机头部{lamp/}前言如果网站对请求头部有限制,短时间内频繁访问会被锁定,可以使用随机请求头部伪装不同浏览器使用 python 第三方模块 fake_useragent 随机生成请求头部 UserAgent安装用python的好基友pip工具进行安装第三方模块fake_useragent pip install fake_useragent --index-url https://pypi.douban.com/simple使用实例可以指定浏览器名称,模拟对应浏览器请求头部UserAgentfrom fake_useragent import UserAgent # 指定浏览器名称 ua = UserAgent() # 显示ie头部 print(ua.ie) # 显示火狐的头部 print(ua.firefox) # 显示谷歌头部 print(ua.chrome) 运行结果:# ie头部 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; chromeframe/13.0.782.215) # 火狐头部 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0 # 谷歌头部 Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36随机生成请求头部调用random方法随机生成请求头部from fake_useragent import UserAgent ua = UserAgent() # 通过random 生成随机的头部 headers = {"User-Agent": ua.random} print(headers) 运行结果:{'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36'}
2022年07月27日
26 阅读
0 评论
0 点赞
2022-07-24
Linux_screen使用
screen 是一个非常有用的命令,提供从单个 SSH 会话中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。如果你想运行一个持久的进程或者从多个位置连接到 shell 会话,这也很方便。在本文中,我们将展示在 Linux 上安装和使用 screen 的基本知识。{mtitle title="如何安装screen?"/}screen 在一些流行的发行版上已经预安装了。你可以使用下面的命令检查是否已经在你的服务器上安装了。screen -v Screen version 4.00.03 (FAU)如果在 Linux 中还没有 screen,你可以使用系统提供的包管理器很简单地安装它。CentOS/RedHat/Fedorayum -y install screenUbuntu/Debianapt-get -y install screen{mtitle title="screen 基本使用"/}语法# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]常用参数screen -S yourname //新建一个名字为yourname的一个session(会话) screen -ls //列出所有的session(会话) screen -r yourname //回到yourname这个session(会话) screen -d yourname //将指定的session(会话)离线 screen -d -r yourname 结束当前的session(会话)回到yourname这个session(会话) 参数说明-A 将所有的视窗都调整为目前终端机的大小。 -d<作业名称> 将指定的screen作业离线。 -h<行数> 指定视窗的缓冲区行数。 -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -r<作业名称> 恢复离线的screen作业。 -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s<shell> 指定建立新视窗时,所要执行的shell。 -S<作业名称> 指定screen作业的名称。 -v 显示版本信息。 -x 恢复之前离线的screen作业。 -ls或--list 显示目前所有的screen作业。 -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。如何kill一个screen?两种方法:使用screen名字,杀掉。screen -S yourname -X quit激活screen,然后再杀掉screen -r yourname quitscreen的快捷键Ctrl + a+d #暂离当前会话 Ctrl + a+c #在当前screen会话中创建一个子会话 Ctrl + a+w #子会话列表 Ctrl + a+p #上一个子会话 Ctrl + a+n #下一个子会话 Ctrl + a+0-9 #在第0窗口至第9子会话间切换
2022年07月24日
21 阅读
0 评论
0 点赞
2022-03-16
IPv4子网划分技术 --- JaysonBlog
前言IPv4的子网划分,我相信有很多人都是半懂不懂的鸭子。在这里我将会以简单明了的话语进行讲解IPv4的子网划分,希望大家能认真看完!!!教程开始{fwtab}{fwh}{fwthead target="1"} VLSM:通过向主机位借位,从而划分子网 {/fwthead}{fwthead target="2"} CIDR : 通过汇总路由来减少路由条目(主机位向网络位借位) {/fwthead}{/fwh}{fwb}{fwtbody target="1"}2 的 N 次方 - 2 >= 所需主机地址(用于计算部门所需地址) N = 主机位(补充:32 = 网络位 + 主机位) 例如:一个 192.168.1.0/24 的 C 类地址,需要给一个部门划分子网,部门需要 50 个地址 2 的 6 次方 - 2 >= 50 即主机位=6,网络位向主机借 2 位 得出 192.168.1.0/26 地址范围 0—63 2 的 6 次方 = 64 个地址 ———————————————————————————————————————— 2 的 M 次方 >= 所需子网数量 例如: 一个 192.168.1.0/24 的 C 类地址,需要划分 5 个子网 2的3次方>=5 所以能够划分 8 个子网, M 等于所需要借的主机位 即等于 192.168.1.0/27 (24 + M) 可以划分 8 个子网,每个子网 32 个地址{/fwtbody}{fwtbody target="2"} 如: 10.1.1.1/32 10.1.1.2/32 可以汇总成 10.1.1.0/30 因为 10.1.1.1 = 0000 1010 . 0000 0001 . 0000 0001 . 0000 0001 10.1.1.2 = 0000 1010 . 0000 0001 . 0000 0001 . 0000 0010 排除不同部分 = 0000 1010 . 0000 0001 . 0000 0001 . 0000 00XX 得出 10.1.1.0/30 其中最后2位不固定{/fwtbody}{/fwb}{/fwtab}
2022年03月16日
86 阅读
0 评论
0 点赞
ghost 盘对盘进行系统迁移遇到的问题!
总结一下我用ghost 盘对盘迁移系统的遇到的困难和解决方案!开始当我把系统迁移到新的硬盘后,发现电脑启动不了,开机直接黑屏然后就跳到bios页面后直接卡死了。。。心情慌得一批,打算有要重装系统了准备了!!!当我了解到GPT的系统格式后,我感觉我知道是哪里的问题。{callout color="#f0ad4e"}GPT格式可以说是MBR的升级版,由于现在的系统动不动就3-4T左右,而MBR最多支持2T的引导,慢慢的MBR就会被淘汰掉。最新的GPT呢,他解决了MBR的这个疼点能无限制的引导,所以GPT变成现在的主流引导格式了。MBR和GPT不同之处咧,GPT有一个叫做uefi的引导分区,而MBR只有一个引导分区不需要进行重新引导的操作,所以用MBR格式迁移系统到其他盘后不许要进行重新引导可以直接使用,而GPT格式呢,就不一样了他有一个UEFI的引导盘,里面包含了系统盘的相关信息,迁移系统的话就会导致系统无法打开直接黑屏!!!{/callout}解决方案:{card-default label="解决方案" width=""}要解决GPT的系统黑屏呢,我们需要重构GPT里面的UEFI引导盘。首先我们要将GPT里的UEFI的引导盘给清除掉分区,然后通过相应的软件进行UEFI重构。软件的话,现在大多主流的PE系统都会有这种软件。所以不需要自己去找,直接用PE系统里面引导修复工具进行修复就好了!修复完后,我们就可以看系统盘里面的就会出现新的UEFI的引导盘。重启一下电脑就可以进入系统了! {/card-default}
2022年03月08日
188 阅读
0 评论
1 点赞
2022-03-03
Python调用Js脚本进行加密处理 ------JaysonBlog
前言python爬虫的时候,可能需要通过加密数据来进行发包,这里我将会分享一个好用的模块来进行调用JS脚本进行数据的加密处理{lamp/}execjs模块调用js脚本函数这里我会调用一个叫做‘execjs’模块。安装方法:pip install execjs安装完后,我举个例子,讲解一下:import execjs # 导入execjs模块 with open('Js.js') as f: # 设置文件对象给f js_data = f.read() # 读取Js.js 到js_data这个对象 dic_key = key # 定义需要加密的对象 # print(dic_key) keys_JS = execjs.compile(js_data).call('test', password, dic_key) # 将加密的参数传到keys_JS # compile 填写自己需要调用的Js脚本 # call 参数填写自己的调用的函数 (第一个:函数名称,第二个:参数,第三个:参数) print(keys_JS) # 显示数据 就是怎么简单 {lamp/}js2py模块调用js脚本函数这里我会调用一个叫做‘js2py’模块。安装方法:pip install js2py安装完后,我举个例子,讲解一下:import js2py # 导入execjs模块 with open('Js.js',encoding='utf-8') as f: # 设置文件对象给f js_data = f.read() # 读取Js.js 到js_data这个对象 context = js2py.EvalJs() # 定义对象 context.execute(js_data) # 解读js脚本 result = context.aes(text, key) # 调用js里面的函数,返回结果 # 对象 调用函数 参数1,参数2js代码翻译解读js脚本,将js脚本翻译成python文件# 翻译js文件为py文件 print(js2py.translate_js("console.log('hello world')")) # 脚本内容 js2py.translate_file('test.js', 'test.py') #转换
2022年03月03日
111 阅读
0 评论
0 点赞
Debian下无界面使用Selenium+chromedriver进行自动化测试 —JaysonBlog
前言在Linux无界面状态下使用Selenium进行数据抓取,把脚本放到自己的服务器上进行抓取。让他自己运行着,嘻嘻嘻!!!教程chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/1,安装selenium 你可以使用 pip 命令来安装 Selenium:pip install selenium2,安装chromewget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt-get -f install dpkg -i google-chrome-stable_current_amd64.deb报错dpkg: error processing package google-chrome-stable (--install): 为这个的话执行一下命令:sudo apt-get upgrade sudo apt-get update sudo apt-get -f install dpkg -i google-chrome-stable_current_amd64.deb出现警告 出现这个的时候修改当前目录的".bashrc"vi ~/.bashrc //编辑文件 export PATH=/usr/loca/sbin:/usr/sbin:/sbin:$PATH //添加内容 :wq 退出source ~/.bashrc //执行命令source /etc/profile#加这一条是为了保险起见 //执行命令3, 下载chromedriver查看chrome版本google-chrome --version下面是关系表将下载好的chromedriver 放到python脚本同级目录方便调用,并修改读写权限:chmod 755 chromedriver测试代码from selenium import webdriver print('开始') # 创建chrome对象 opt=webdriver.ChromeOptions() # 解决DevToolsActivePort 文件不存在的报错 opt.add_argument('--no-sandbox') # 指定浏览器分辨率 opt.add_argument('window-size=1600x900') # 规避Bug opt.add_argument('--disable-gpu') # 隐藏滚动条 opt.add_argument('--hide-scrollbars') # 不加载图片,提速 opt.add_argument('blink-settings=imagesEnabled=false') # 不提供可视化 opt.add_argument('--headless') web=webdriver.Chrome(chrome_options=opt,executable_path='./chromedriver') web.get('http://www.baidu.com') print(web.title) web.quit() print('结束')
2022年02月18日
123 阅读
0 评论
0 点赞
2022-02-15
python中csv文件的用法,以及添加数据时,解决自动换行问题!
前言这里我例举两个写csv的方法,往下看!有时候想用python将数据写入csv文件的时候,有时候会遇到下面的这种情况:教程import csv # 第一种写法 f = open('name.csv', mode='w', newline='') # 加上“ newline='' ”,就能解决自动换行问题 csvwriter = csv.writer(f) #第二种写法 with open('name.csv',mode='w') as f: writer = csv.writer(f) 加上“ newline=' ' ”,就能解决自动换行问题!以上两种写法比较常用!
2022年02月15日
87 阅读
0 评论
0 点赞
1
2
3