($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = " ";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = " ";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
Selenium隐藏浏览器页面-软件玩家 - 软件改变生活!
Selenium隐藏浏览器页面
背景
在工作,学习中,我们常常会使用selenium来获取网页上的数据,编完完整程序之后,实现真正意义上的自动化获取,此时我们会发现在运行中往往会弹出浏览器页面,在调试过程中,这很方便,但是跑自动化时,我们就需要将浏览器隐藏在后台运行即可。这样就不会影响其他工作的进行。
方法
主要是通过修改浏览器启动选项进行设置,其实就是将driver=webdriver.Chrome()换成一下三行代码即可,涉及代码如下:
#浏览器启动选项
option= webdriver. ChromeOptions( )
#指定为无界面模式
option. add_argument( '--headless' )
# option.headless=True 或者将上面的语句换成这条亦可
#创建Chrome驱动程序的实例
driver= webdriver. Chrome( options= option)
下面通过实例来展示,实现结果:
弹出浏览器页面
在这里我列出一个我认为不错的方法,分享给小伙伴们: 首先,是不隐藏浏览器的正常写法如下:
from selenium import webdriver
from selenium. webdriver. common. by import By
url= 'https://www.baidu/'
#创建Chrome驱动程序的实例
driver= webdriver. Chrome( )
#打开浏览器并获取此网址的信息
driver. get( url)
#根据定位条件定位内容,并输出
content= driver. find_element( By. XPATH, '//*[@id="s-top-left"]/a[1]' )
print ( content. text)
#关闭浏览器
driver. close( )
运行结果如下:此时是有浏览器页面弹出的。
D: \workplace\venv\Scripts\python. exe D: \workplace\venv\111 . py
新闻
Process finished with exit code 0
在后台隐藏浏览器页面
通过修改浏览器启动选项,来设置浏览器的显隐:
from selenium import webdriver
from selenium. webdriver. common. by import By
url= 'https://www.baidu/'
#浏览器启动选项
option= webdriver. ChromeOptions( )
#添加启动选项,指定为无界面模式
option. add_argument( '--headless' )
# option.headless=True 或者将上面的语句换成这条亦可
#创建Chrome驱动程序的实例
driver= webdriver. Chrome( options= option)
#,打开浏览器并获取此网址的信息
driver. get( url)
#根据定位条件定位内容,并输出
content= driver. find_element( By. XPATH, '//*[@id="s-top-left"]/a[1]' )
print ( content. text)
#关闭浏览器
driver. close( )
运行结果如下,此时浏览器页面无弹出。
D: \workplace\venv\Scripts\python. exe D: \workplace\venv\111 . py
新闻
Process finished with exit code 0
总结
掌握一门技术的最佳途径就是实践,好记性不如烂笔头,让咱们一起去实践学习吧!
本文标签:
浏览器 页面 selenium
更多相关文章 Windows 10 ISO高手教程:自制安装环境,无工具也能玩转 不用工具直接从微软官网下载Win10正式版ISO镜像的技巧 发表于2018年12月25日 23:21:24由MS酋长 我们在重装Win10系统时需要用到ISO镜像,并且微软官网也有专门的“”页面,但问题是,你打开
一文教你如何为VSCode指定一个更高效的浏览器 引言 作为前端开发者,我们经常需要在VSCode中快速预览HTML文件。默认情况下,VSCode会使用系统默认浏览器打开文件,但有时我们可能需要切换到其他浏览器进行测试。本文将详细介绍如何在VSCode中更换默认浏览器。
VSCode里的默认浏览神器,你真的会选吗? 引言 作为前端开发者,我们经常需要在VSCode中快速预览HTML文件。默认情况下,VSCode会使用系统默认浏览器打开文件,但有时我们可能需要切换到其他浏览器进行测试。本文将详细介绍如何在VSCode中更换默认浏览器。
重启SWF、Flash中心:修复搜狗浏览器收藏夹故障 今天整理了半天的搜狗浏览器收藏夹,导入导出时,操作不慎,收藏夹全删了,辛苦了半天的成果一下子没了;网上搜罗了一下,外加自己实际验证修改,特总结收藏夹恢复方法如下:第一步:关闭搜狗浏览器;第二步:打开“开始菜单—
玩转两个网页:B页面意外退出的警告信号给A页面! 本题是 html 页面通信题,可以拆分成:A 页面打开 B 页面,A、B 页面通信方式? B 页面正常关闭,如何通知 A 页面? B 页面意外崩溃,又该如何通知 A 页面?A 页面打开
页面管理秘籍:让A页面实时响应B页面的操作 过程拆分A页面中打开B页面,A,B页面通信方式? B页面正常关闭,如何通知A页面? B页面意外崩溃,如何通知A页面?A、B页面的通信方式url传参 localSt
不再烦恼:自动化清除浏览器历史的步骤分享 在现在的互联网时代,我们常常会通过浏览器等应用程序了解社会上发生的一些事情,但是当我们在进行这些操作的时候浏览器都会将我们访问了哪些网站记录下来,这就是浏览器历史记录。有时候我们可以通过历史记录快速的找到之前所访问的某一篇文章,但是有
告别IE9,完美升级至令人怀念的IE8版本 E9正式版发布了,一些朋友安装后发现有些功能并不满意,于是想卸载IE9并恢复以前的IE8浏览器。下面就为大家介绍如何卸载IE9恢复IE8浏览器的方法。 IE9浏览器安装后自动覆盖以前的IE8浏览器,如果想恢复以前的IE8,只
还原经典:指导卸载IE9以恢复至IE8的操作流程 E9正式版发布了,一些朋友安装后发现有些功能并不满意,于是想卸载IE9并恢复以前的IE8浏览器。下面就为大家介绍如何卸载IE9恢复IE8浏览器的方法。 IE9浏览器安装后自动覆盖以前的IE8浏览器,如果想恢复以前的IE8,只
CS编程难题全靠它,为何360却开不起来CSDN?原因在这儿! 从百度或者csdn的搜索中打开,会发现打不开网页,以前也出现过,只是以为这篇文章被删了,昨天接连多个文章打不开,怀疑的浏览器的问题,复制网址到edge浏览器就打开了 刚刚又出现了,怀疑360会拦截某些内容 edge浏览
装了新360浏览器却打不开?解决秘籍在这里! 360浏览器点击图标没有响应,可以通过打开pdf的侧面方式调用360浏览器,从而打开浏览器页面。(1)找到一个pdf文件(随便什么文件),对文件右键调出如下界面 特殊情况——如果在【查找其他应用】中
CSDN遇360,打开成了难解之谜,求破解方案! 从百度或者csdn的搜索中打开,会发现打不开网页,以前也出现过,只是以为这篇文章被删了,昨天接连多个文章打不开,怀疑的浏览器的问题,复制网址到edge浏览器就打开了 刚刚又出现了,怀疑360会拦截某些内容 edge浏览
快速指南:在Google浏览器中设定Adobe Flash Player为默认SWF播放器 如何将谷歌浏览器设置为默认浏览器在日常使用电脑浏览网页时,不同的用户有不同的浏览器偏好。谷歌浏览器(Google Chrome)以其强大的性能、丰富的扩展功能和简洁的界面设计,赢得了众多用户的青睐。然而,有时用户在安装或
告别混乱,一键设置谷歌浏览器为你的默认浏览器操作指南 在成功下载安装谷歌浏览器(Google Chrome)之后,为了提升日常浏览网页的效率,大多数用户希望将其设置为系统默认浏览器。但由于不同操作系统的设置路径略有差异,部分用户在操作过程中可能遇到困惑。无论是在Windows平台还是ma
明明设定了SWF播放器,为啥还是Flash中心?找回你的控制权! 今天开始打开项目时,突然间发现我的浏览器被改成了IE打开。奇怪了,并没有设置过默认浏览器为IE! 随后,当然是修改默认浏览器了,如下常规操作: 控制面板》程序》默认程序》设置默认程序》web浏览器》点击并选着你要设置的
Win系统里的那个怪毛病:为啥总改不了默认浏览器? 今天开始打开项目时,突然间发现我的浏览器被改成了IE打开。奇怪了,并没有设置过默认浏览器为IE! 随后,当然是修改默认浏览器了,如下常规操作: 控制面板》程序》默认程序》设置默认程序》web浏览器》点击并选着你要设置的
Adobe Flash Player高手秘籍:一招搞定视频下载 视频下载神器完全指南:轻松保存网页视频的终极方案 你是否曾在观看精彩视频时,想要将其保存到本地却无从下手?或者担心错过重要内容,希望有个工具能帮你随时下载保存?VideoDownloadHelper 正是你需要的解决方案!这款
揭秘如何在网站中添加、运行SWF格式的Flash视频 方法一:使用360或者IE浏览器1.进入播放视频的网页,播放视频并缓冲完全;2.点击浏览器“工具”栏菜单中“Internet”选项;3.在弹出的窗口中间部位找到“设置”;4.
解决IE浏览器被360锁死,恢复自定义主页的简单指南 本文分享一下我勇斗360绑架IE主页的过程,虽然360有些功能还行,偶尔下载个东西,装个扩展程序去除广告啥的,还是不错的。不过我很讨厌被绑架,真的很讨厌, 最近由于下载了一个盗版的软件,下载了之后不好用,于是我就卸载了。但是这也是这个
手把手教你:摆脱360强行修改IE首页,重新掌控你的电脑桌面! 本文分享一下我勇斗360绑架IE主页的过程,虽然360有些功能还行,偶尔下载个东西,装个扩展程序去除广告啥的,还是不错的。不过我很讨厌被绑架,真的很讨厌, 最近由于下载了一个盗版的软件,下载了之后不好用,于是我就卸载了。但是这也是这个
发表评论