bro

让selenium规避网站的检测

寵の児 提交于 2021-01-05 18:02:30
在使用selenium对某些网站模拟访问的时候会被检测出来,检测出来之后就有可能拿不到我们想要的数据,那么我们怎么可以规避掉呢? 在使用谷歌浏览器的时候我们右键-检查-console-输入window.navigator.webdriver假如返回的是True则是被检测出了了,返回的是undefined则没检测到。 from selenium import webdriver from selenium.webdriver import ChromeOptions option = ChromeOptions() option.add_experimental_option( ' excludeSwitches ' , [ ' enable-automation ' ]) # 实例化一个浏览器对象 bro = webdriver.Chrome(executable_path= ' your driver path ' ,options= option) bro.get( ' https://www.taobao.com/ ' ) 来源: oschina 链接: https://my.oschina.net/u/4335170/blog/3336201

ELSA企业日志归档查询系统

不问归期 提交于 2020-12-11 08:40:26
ELSA(全称:Enterprise Log Search and Archive)是一款基于syslog-ng(新一代日志收集器,但目前多数Linux发现版都不带此工具)、MySQL的开源级企业日志归档查询工具,由于它和Sphinx的完美搭配,支持全文索引可以像搜索Web一样轻松地搜索上亿个日志中的任意字符串(前提是你的服务器配置足够高)。单节点ELSA日志采集系统的工作原理图如下所示: 上面这张架构图可以看出ELSA从架构上分为三层: 日志接收器,由syslog-ng完成负责接收来自本地、网络以及导入的日志文件 日志存储索引,存储由MySQL数据库完成,索引由sphinx完成。 Web前端 。 ELSA利用syslog-ng的pattern-db解析器进行有效的日志规范化,并利用Sphinx全文索引进行日志搜索。系统内部API将查询结果汇总后,发送给客户端,整个系统是异步执行,可以跑多个查询。接收器syslog-ng在接收日志时并没有进行归一化处理(类比OSSIM-Agent插件),所以对日志的正则表达式计算量不大,可以在syslog-ng中保持高效的日志接收率,系统大部分有Perl脚本组成,MySQL每秒可插入100K行数据。Sphinx在索引中为新插入的行建立索引,每个2小时会重新建立一次永久索引。整个系统最大效率发挥时每秒钟可以处理100K条日志。

程序员的业余生活之健身篇

我与影子孤独终老i 提交于 2020-11-01 04:00:53
前言 十年生死两茫茫,写程序,到天亮。 千行代码,Bug何处藏。 纵使上线又怎样,朝令改,夕断肠。 领导每天新想法,天天改,日日忙。 相顾无言,惟有泪千行。 每晚灯火阑珊处,程序员,又加班,工作狂。 这首悲凉的《江城子》,苏轼曾用它悼念亡妻,IT从业者则用它描述自己的艰辛、凄凉。不断的加班,持续的辛劳,导致很多IT从业者年纪轻轻就百病缠身,更有甚者为之付出了生命的代价。 工作 讲真,有时候对于某些公司某些程序员的工作性质来说,健身来说何尝不是一种奢侈。 讲真,如果遇到这种公司,千万不要拿自己的后半生开玩笑。 讲真,这个世界上最忙最累的是人,最会享受的也是人,如果不充分利用时间,把自己从最底层解放出来,你的每一年可能都是一个轮回,指不定哪天你连轮回的机会都不见了。 当然,今天的主题不是跟大家分享从底层解放出来,至少目前自己还是在底层徘徊,不过有如果有机会,可以跟大家探讨一下。常听吴军博士的《硅谷来信》,也浅读过他的《大学之路》和《浪潮之巅》,惊叹于阅历生活之丰富,同时也佩服其选择和坚持,当然他的智商也是相当牛的对于常人来说,这是他自己说的。 健身 程序员一般在大众的眼中都是木纳,邋遢,甚至有点儿轴或是书呆子气。但凡事都在变化,程序员也不例外,科技行业的文化正在转变:健身已成为所谓brogrammer的新嗜好。 Brogrammer:新生名词,形容比较酷的程序员。由兄弟会绰号“bro

xpath定位span里面的title标签

本小妞迷上赌 提交于 2020-10-01 15:07:16
环境:Python3.6、selenium3、谷歌浏览器 当我们定位这个位置text时显示的数据是不全的,那我们就需要定位title标签,但是尝试定位一直没成功,后来发现xpath的另一个功能那就是.get_attribute('title')这样就可以定位到title的数据了,下面我们看代码: bro.find_element_by_xpath('//*[@id="levelReport"]/......').get_attribute('title') 来源: oschina 链接: https://my.oschina.net/u/4358286/blog/4657778

在linux和windows中使用selenium

守給你的承諾、 提交于 2020-08-13 18:17:32
在linux和windows中使用selenium 一. selenium(浏览的人你们多大呀?是AI?) selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 1. 环境安装 下载安装selenium: pip install selenium 下载浏览器驱动程序: http://chromedriver.storage.googleapis.com/index.html 查看驱动和浏览器版本的映射关系: http://blog.csdn.net/huilan_same/article/details/51896672 2. 编码流程 - 导包: from selenium import webdriver - 实例化某一款浏览器对象 - 制定相关的行为动作 3. 简单使用/效果展示 from selenium import webdriver from time import sleep # 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的 driver = webdriver.Chrome(r'./chromedriver.exe') #

【浮*光】#树形DP# 树形DP的习题集

烈酒焚心 提交于 2020-05-05 15:03:06
T1:【p2996】拜访奶牛 树的相邻节点不能选择,求最多选择的节点数。 【0/1型树形dp】← 也只有我这样叫... 这题是真的很模板... f[x] 即 拜访x时最大数量,g[x] 即 不拜访x时最大数量。 转移方程:f[x]=1+∑g[son[i]],g[x]=∑max(f[son[i]],g[son[i]])。 不妨假设从1号点出发,那么答案即为max(f[1],g[1])。 #include<iostream> #include <cstdio> #include <cstring> #include <algorithm> #include < string > #include <queue> #include <map> #include <vector> #include <cmath> using namespace std; typedef long long ll; /* 【p2996】拜访奶牛 N(1<=N<=50000)个朋友构成一棵树。求:可以拜访的朋友的最大数目。 限制:对于由一条路直接相连的两个奶牛,只能拜访其中的一个。 */ /* 【0/1型树形dp】← 也只有我这样叫... f[x] 即 拜访x时最大数量,g[x] 即 不拜访x时最大数量。 转移方程:f[x]=1+∑g[son[i]],g[x]=∑max(f[son[i]],g[son[i]]

爬虫模块介绍--selenium (浏览器自动化测试工具,模拟可以调用浏览器模拟人操作浏览器)

拥有回忆 提交于 2020-05-04 07:19:08
selenium主要的用途就是控制浏览器,模仿真人操作浏览器的行为 模块安装:pip3 install selenium 需要控制的浏览器 from selenium import webdriver # 调用这个模块 browser=webdriver.Chrome() # 控制谷歌浏览器 PS:调用谷歌浏览器需要下载一个驱动:http://npm.taobao.org/mirrors/chromedriver/2.38/ # 下载对应版本的即可 PS:解压后得到一个exe程序,可以放到项目的根路径,也可以放到python的根路径下(放入python的安装路径下不用在代码中配置驱动路径) browser=webdriver.Firefox() # 控制火狐浏览器 browser=webdriver.PhantomJS() browser=webdriver.Safari() # 控制苹果的浏览器 browser=webdriver.Edge() # 控制ie浏览器 from selenium.webdriver.common.keys import Keys # 导入这个模块就是可以模拟键盘操作 from selenium import webdriver # 导入这个模块可以控制浏览器 selenium模块下的所有方法 find_element和find_elements的区别

html5页面资源预加载(Link prefetch)

老子叫甜甜 提交于 2020-04-25 01:41:54
---恢复内容开始--- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <base > <title></title> <script> function bro(){ // var is360 = false; //application/vnd.chromium.remoting-viewer 可能为360特有 var is360 = _mime("type", "application/vnd.chromium.remoting-viewer"); var isIE = false; var isFirefox = false; var isCrome = false; var broName = ''; if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){ isIE = true; broName = 'IE'; alert(ie) } if(window.navigator.userAgent

scarpy爬虫框架

北战南征 提交于 2020-04-11 08:08:03
目录 架构介绍 安装创建和启动 配置文件目录介绍 爬取数据,并解析 数据持久化 保存到文件 保存到redis 动作链,控制滑动的验证码 架构介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 ​ Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 IO多路复用 # 引擎(EGINE)(大总管) 引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 # 调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 # 下载器(DOWLOADER) 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的 # 爬虫

selenium爬虫

强颜欢笑 提交于 2020-04-10 11:21:52
目录 介绍 安装 有界面的浏览器 无界面浏览器 selenium高级用法 selenium选择器选择 常用用法 模拟百度登录 获取cookie 获取标签属性、获取文本、标签ID、位置、大小 显示等待、隐士等待 执行JS代码 简单使用 js屏幕上下滚动 模拟浏览器前进后退 选项卡管理(新窗口跳转) 异常处理 模拟键盘操作 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium import webdriver browser=webdriver.Chrome() # 推荐使用 browser=webdriver.Firefox() browser=webdriver.PhantomJS() browser=webdriver.Safari() browser=webdriver.Edge() 安装 有界面的浏览器 #安装:selenium+chromedriver pip3 install selenium 下载chromdriver.exe放到python安装路径的scripts目录中即可 国内镜像网站地址:http://npm.taobao