请python 爬虫高手(selenium技术)帮忙解决几个问题,谢谢。

环境:python36,selenium 3.3.1,phantomjs2.1.1
描述:我利用python中selenium模块的phantomjs对网页进行拍照,其中有几个小bug,请高手支支招,如下问题:
1.某些网站会有反爬机智,导致拍照失败:如图图片说明
导致的原因我认为是标红框的地方,是否可以更改,把这个删掉?或者其他办法。

2.在截图中,有些浮动的广告,需要点击关闭,selenium虽然有点击的功能,但是如何判断它是广告呢?

3.在连接网站时,有时会报错,报错内容是timeout,但是我手动打开连接却很快就能打开,应该如何解决呢?

以上3个问题困扰小弟好长时间,请高手支招,谢谢~~~

1个回答

可以,这个是user-agent,可以修改
https://blog.csdn.net/zaixiahanli/article/details/64479463

第二个问题,结合一些特征判断,比如说多数的广告为了保持在最上面,z-index都设置成99999

最后一个问题,加上一点延迟,或者死循环判断是否加载,直到加载了再退出循环,继续执行。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
几个问题,请高手帮忙!
1。参考网上的省市联动,实现是实现了。。。当我点击按钮后,市的下拉用又成空的了,原因我想是因为 PostBack了,,有什么方法可以让他继续保持状态吗?有参考文档或代码最好。。。rn2。有没有什么办法改掉上传控件的浏览为查找?rn在线等。。。
几个问题请高手帮忙
1、服务器端数据库用SQL2000,是不是必须在服务器端安装SQL2000rn2、客户端使用服务器端数据库,如果服务器端系统安装了计算机名就改变了,客户端怎么修改datasourcern
请高手解决几个问题
1、 利用脚本查询出邮政编辑是否为空或包括字符或长度不等于空的记录。 rn2、 将字符串‘800506’的数据转换为‘1980-05-06’的日期格式。 rn3、 利用脚本查询15位身份证号码升级为17位后,与数据库中原有18位身份证的前17位重复的所有数据记录。 rn注:15位升级17位的规则如下,在15位身份证的第6位后,加入‘19’后,就可升级为17位。 rn4、 利用脚本查询人员名称中不包括汉字的所有数据记录。 rn注:人员名称长度为char(6) rn
联系几个问题.请高手帮忙解决
1:php如何实现隐藏路径的下载!rn2:我上传的WORD文挡下载的时候总不能正常被WORD打开,而且变成了一个很奇怪的文件:(rn3:要一个好用的PHP翻页的类;rn4:我想知道事务和回滚的具体说明和意义,当然还有用法.rnrn那位帮我回答了。小弟这200分的身价都奉送了!!!!
斗鱼爬虫 -- selenium技术
#!/usr/bin/env python # -*- coding:utf-8 -*- import time from selenium import webdriver chrome = webdriver.Chrome() # invalid selector xpath语句错误 # 标题 # titles = chrome.find_elements_by_xpath('//...
selenium爬虫技术
selenium爬虫抓取技术,我们的祖国是花园,花园里花朵真鲜艳
会者不难的几个问题!谢谢帮忙解决。
刚开始学习C++Builder 希望大家帮帮忙,谢谢!rn我的目的就是将输入的int String char long .....能够转为字节数组,然后保存为文件rnclass WriteByteTestrnrnprivate:rn byte b1[2];rn byte b2[100];rn byte b3[1];rnpublic:rn WriteByteTest(int i,String s,char c)rn rn b1 = i;//不知道怎么实现转换rn b2 = s;//不知道怎么实现转换rn b3 = c;//不知道怎么实现转换rn rn void WriteByteToFile(String FileName)rn rn //不知道怎么实现将字节 byte b1[2]; byte b2[?];byte b3[1];保存到文件中rn ........rn rn byte[] GetBytes()rn rn //不知道怎么将字节合并起来rn return b1+b2+b3;rn rn
dataGrid的几个问题!!~~ 高手帮忙!!谢谢
1,。net remoting中我在服务器中序列化的对象是以数据库中的字段形式序列化过来的rn而刚才看了下书中datagrid的介绍,是直接用dataset填充!!!rn不知道能否在客户端直接将dataset 填充到我的datagrid中!!(winform)rn也就是说要是直接用dataset填充的话,我的客户端要怎么调用这个dataset呢rndataset怎么序列化到我的客户端呢?????rn过去一直是用listViewrn2, DataGrid中的分页问题rn这个我看了很多介绍了,可是大部分都是webForm的rn有没有winForm的给个例子了,谢谢……~……~rnrn两个很菜的问题,希望大家多指教了,谢谢
python爬虫之selenium的安装使用
selenium是爬虫几大利器之一,他可以用来爬取一些使用requests库爬取不了的东西,它是打开一个浏览器,并且操作这个浏览器,使其爬虫过程拟人化,下面来介绍selenium的安装方法,这里以chrom浏览器为例子 1、安装selenium模块,在控制台输入pip install selenium 2、确保电脑安装了chrom,并且下载同版本的chromdrive.exe,并复制到python...
Python爬虫利器—selenium
在学习爬虫的时候,我接触了selenium,发现其强大功能,可以模拟真实情况操纵浏览器,其实也是相当于一个第三方的包。 selenium十分好用 特别在面对一些有针对反爬虫设计的网站时,能达到用时间换数据的效果 安装 在控制台下用PIP操作可以下载,不过在使用的时候要多下载一个webdriver的,我是用的是Chorme浏览器70版本,所以下载的是对应的chormedriver2.43版...
python爬虫-selenium详解
python爬虫-selenium详解, python爬虫-selenium详解, python爬虫-selenium详解
Python爬虫之selenium模拟登陆
在我们日常的爬虫运作中会遇到各种各样的网页,比如最常见的就是静态网页,这是最容易爬取的一种网页,通过上次说到的requests就可以轻易地爬取到信息,但是,我们也会遇到一些动态网页即用ajax来完成的网页,如果还是只是单纯的使用requests就不能完成了,就需要使用selenium来模拟浏览器,等待网页加载完成之后再下载网页。但是selenium需要一个软件来使用,geckodriver,下面是...
python的《Selenium爬虫》中文版
python的《Selenium爬虫》中文版
Python爬虫工具之Selenium
selenium 是一个用于web自动化测试的工具集,selenium不尽支持所有主流的浏览器,而且还支持很多开发语言,更好的是他这种测试工具其实可以融入到不同的测试框架中,根据你的要求,适应不同的测试流程。其实selenium最核心的就是一个驱动浏览器进行自动化测试的东东。 安装Seleniumpip install Selenium,建议用pip安装的时候
Python爬虫小结之Selenium
上学期和同学一块儿接了个爬虫的活儿,赚了人生第一桶金。本来打算寒假好好整理一下,但是,但是寒假整整玩儿了一个月,说好的总结博客没有写,想学的新东西也没有看,真是不思进取啊。现在提前几天回学校,一来准备一下实验室新开的项目,二来对这学期做一个小的规划吧,顺带整理一下上学期的工作。这篇博客主要总
Python爬虫——Selenium库
一、介绍自动化测试工具,支持多种浏览器。爬虫主要用来解决JavaScript渲染的问题。二、用法基本使用from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.s...
python爬虫——selenium库
python爬虫——selenium库 1.简介。 自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。(ps:要调用游览器必须先下载相应的driver.exe文件并把它放进python的安装目录!) 2.代码。 基本使用 #!/usr/bin/python # -*- coding: UTF-8 -*- from selenium import webdriver f...
Python爬虫之Selenium用法
Selenium相关方法介绍 1:声明浏览器对象 from selenium import webdriver #声明谷歌、Firefox、Safari等浏览器 browser=webdriver.Chrome(executable_path='../bin/chromedriver.exe') browser=webdriver.Firefox(executable_path='../bin/g...
请帮忙解决下面几个问题
1. 使用PB7的管道操作把DBF的数据导入Oracle,有几个表操作正常,但有一个表进行操作时出现如下错误提示:rnDatabase error 999rnSQLSTATE=S1000rn[Microsoft][ODBC Visual foxpro Driver]Funtion is not implemented.rn这是什么原因?如何解决?rnrn2.按1的操作导入oracle的数据表中汉字变成了乱码,如何解决?rnrn3.相同的select 语句在SQLPLUS下执行正常,有查询结果,但在ASP下,查不到数据,什么原因?rn谢谢帮助!rn
几个问题!请大家帮忙解决
一.请问在获取mysql数据表的行数时用什么方法效率最高?rn/**************rn *方法一rn **************/rn $Result=mysql_query("select * from someTable");rn $num=mysql_num_rows($Result);rnrn/**************rn *方法二rn **************/rn $Result=mysql_query("select count(*) AS num from someTable");rn $rows_ar=mysql_fetch_array($Result);rn $num=$rows_ar["num"];rn请问是方法一好还是二好呢?rn如果都不好,请问还有什么更好的方法呢?rnrn二.php中在截断中文字符串的时候,如何保证不出现乱码?rn 请个实例!谢谢.rn rnrn
学习Python爬虫的几个问题
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xbf in position 2: illegal multibyte sequence解决方案:import codecs d = path.dirname(__file__)# Read the whole text. #text = open(path.join(d, 'constituti
oracle几个问题请高手帮忙
1.如果某一个表空间的利用率已经达到90%,你发现另外一块磁盘DISK2上还有70%的剩余空间,请问如何将该表空间配置到DISK2磁盘上?rn2.你发现索引表空间和数据文件所对应的表空间在同一块磁盘上,你想把索引表空间移植到另一块I/O操作比较少的硬盘上,请写出操作步骤。rn3.如果在线联机重做日志文件配置的不合理,请写出重新配置的步骤。rn请求各个高手帮忙啊~
遇到几个问题,请高手帮忙
1:如何设置显示星号的那种密码保护输入效果?rn2:在form里init了一个 public query_1 的临时表,然后想在一个grid里面显示根据SQL查询条件生成一个临时表 query_1 的内容。已设置Thisform.grid1.RecordSource=query_1 rnthisform.Refreshrn可是总不能显示,请问该怎么办?rn3:如何获取当前日期和当前时间,并加以调用和比较?
请帮忙解决,谢谢
[img=https://img-bbs.csdn.net/upload/201807/31/1533043516_488183.png][/img][img=https://img-bbs.csdn.net/upload/201807/31/1533043526_55350.png][/img]rn为什么我用debug启动后的map不能显示详细信息呢里面只有map cannot be resolved to a variable.rnNo details to display for the current selection.??rn网上查到的最多的方法是rnrnWindow->Preferences->Java->Editor->Hovers 将[Variable Values]选择即可,如果[Combined Hover]已经勾选,取消并勾选[Variable Values]rnrn右击工程->properties->Java Compiler->选中 "add variable attributes to generated class (used by the debugger)” 选项即可rn都试了没有用,我的eclipse是氧气版的,jdk是1.8
请高手帮忙解决一个问题,谢谢!
我在使用ADO编程时遇到这样一个问题,使用ADOTable组件的Open方法时,总是报错,其出错信息如下:rn Project Testing.exe raised exception class EVariantError with Messagern"Invalid Variant Type convertion". Process stopped.use step or run to continue.rn 但我把ADOTable组件换成ADOQuery组件时,上述错误消失。本人百思不得其解,望高手赐教!
请高手帮忙解决!!!!!!!!!!!!!!!!!!!!!!!谢谢!!!急啊!~!!!
set rs=server.CreateObject("adodb.recordset")rn rs.open "select bookid where nclassid="&nclassid&" order by adddate desc",conn,1,1 rnrn rn rn rn rn 三个月rn rn rn rn 半年rn rn rn rn 全年rn<% response.write " "%>rn我是想把数据库得到的bookid 和所选radio的值一起传到shopping1.asp的rn请问该怎么改啊!?rn这里alert('你选择的radio为:'+value);rn window.open("shopping1.asp?id="+rs("bookid")+"&fmid="+value,"Menu_show","");这样写肯定不对,可是该怎么办呢?
请WEBSERVICE高手帮忙解决,谢谢
[b][color=#FF0000]WEBSERVICE 写的一个插入数据函数[/color][/b]rnrn[WebMethod]rn public string InsertData(DataTable dt)rn rn SqlConnection conn2 = GetConn();rn SqlTransaction t = conn2.BeginTransaction();rn SqlCommand Cmd = conn2.CreateCommand();rn Cmd.Transaction = t;rn rn tryrn rn foreach (DataRow dr in dt.Rows)rn rn rn Cmd.Parameters.Clear();rn Cmd.CommandText = "insert into productdata(address,customer) Values(@address,@customer)";rn Cmd.Parameters.Add(new SqlParameter("@address", dr["address"].ToString()));rn Cmd.Parameters.Add(new SqlParameter("@customer", dr["customer"].ToString()));rn int intResult=Cmd.ExecuteNonQuery();rn rn t.Commit();rn rn catch (Exception ext)rn rn t.Rollback();rn return (ext.Message);rn rn finallyrn rn Cmd.Clone();rn conn2.Close();rn rn return ("true");rn rnrnrnrnrn[color=#FF0000][b]客户端调用插入数据:[/b][/color]rnrn[color=#333399]private void buttonSave_Click(object sender, EventArgs e)rn rn rn前面代码省略...rnrn string strvalue = webservice1.InsertData(dt); //dt为一个有1万条记录的DataTablernrn if (strvalue == "true")rn rn MessageBox.Show("保存成功");rn rn elsern rn MessageBox.Show(strvalue);rn rnrn rn [/color]rnrn上面是使用C#调用WEBSERVICE的一个函数InsertData插入数据,如果数据提交出错,程序是会自动回滚的,事务处理我测试过了,可以执行。rnrn但是一旦数据量增多,调用webservice1.InsertData(dt); 这句命令后,客户端提示超时。但Dt实际已经传输到了服务器端rn并已经插入成功,所以造成一个问题就是:客户端提示传输数据超时错误,但是服务器端已经成功插入数据。请问rn应该如何解决?rnrnrn[img=http://hi.csdn.net/attachment/201203/11/872493_1331459667ibXX.jpg][/img]rn
请高手们帮忙解决,谢谢
我作了一个程序,用来控制“暴风音影”播放软件的暂停和继续(有这个需求),我采用的是暂停“暴风音影”进程下所有线程的方法,程序运行时,能暂停,但是有一点无法实现。当暂停后再继续,我发现,暂停多长时间,就会从暂停点后面多长的时间开始播放。比如,我从13秒开始暂停120秒,那么恢复后,“暴风音影”应该从13秒处继续,而实际情况是,“暴风音影”从13+120=133秒处继续。请帮助解决。我想用ITStream::PauseStream。但我不知道这个能否解决问题,没有找到相关资料,也不会用这个函数,好象涉及到COM。这里高手很多,请指点我一下。谢谢rn
请高手帮忙解决,一个新问题, 谢谢?
构建了一个TREEVIEW后,把它的picture改为Checkbox试样,希望根据用户点击的item时,应触发单击事件,但它前面的CheckBox没有打对勾,应该是我单击时,打对勾,再单击时去掉对勾,可实事上我每次得到的statepictureindex值与单击的动作不一样,恳请给予解决? rn
请各位高手帮忙解决一下!谢谢!
最近一直学习c语言,一些不明白的地方,请大家帮忙看一下。下面的一小段段代码怎么rn也不能运行成功。很简单的,就是定义了一个全局二维数组,然后输出。总是出现rn错误。而以前编写的一道课本上的例题却能够顺利通过。rn#define N 10rn#define M 5rnfloat score[N][M];rnvoid input_score(void)rnrn int i,j;rn printf("please input the array:\n")rn for(i=0;ihigh)rn high=score[i][j];rn r=i+1;rn c=j+1;rn rnreturn(high);rn rnfloat s_var(void)rnrn int i,j;rn float sumx,sumxn;rn sumx=0.0;rn sumxn=0.0;rn for(i=0;i
三个问题请高手帮忙解决,谢谢!
系统是WIN 2000 SERVER SP3,安装了瑞星杀毒软件。rnrn问题一:rn开机后没一会系统就变得非常慢,打开“任务管理器”发现CPU占用100%,看进程,有个“vbrun6win.exe”,rn把这个进程结束了,系统就恢复正常了。每次开机都这样,怎么解决???rnrn开机后,不管运行什么程序,大约20多钟后(有时时间长些),显示器便蓝屏,并提示:rn***STOP:0X000000D1 ( 0X2D20040,0X000000FF,0X000001,0XBEA7FAEA) DRIVER_IRQL_NOT_Less_or_EQUAL.rn***Address BEA7FAEA base at BEA79000, DateStamp ....(这一行后面的没记下来就重启了)rnBeginning dump of physical menoryrnDumping physical nemory to disk: 1 (数字慢慢往上涨,到60——70就重启电脑了)rn这是什么问题呀??是内存有问题吗?rnrn问题三:rn我已经打上了震荡波和冲击波的补丁,为什么开机后有时还会提示漏洞攻击ms04-011,如果换个普通用户登陆,rn便会中毒重启电脑,(在这个用户下没安装补丁)。rn
请高手帮忙解决一个小问题,谢谢!
[code=C#]rnrn //根据条件分页显示返回泛型集合rn public List GetList(int startIndex, int pageSize, Expression> predicate,string sort,string sortDirection)rn rn tryrn rn rn if (predicate == null)rn rnrnrn return dct.Income.OrderByDescending(b => b.Id).Skip(startIndex - 1).Take(pageSize).ToList();rn rn elsern rn return dct.Income.Where(predicate)rn .OrderByDescending(b=>b.id).Skip(startIndex - 1).Take(pageSize).ToList();rn rn rn catch (Exception e)rn rn throw e;rn [/code]rnrnrnrnrn.OrderByDescending(b => b.Id) 要变成动态排序怎么整?rnstring sort,string sortDirection 怎么传进来。方向我知道,这个可以判断然后用Orderby 的默认。rnrn 排序字段怎么传入? 传 b=>b.id 这个表达式。或者直接传个字符串进去。。rnrn rn rnpublic static class OrderExpressrn rn public static Func DynamicLambda(string propertyName)rn rn ParameterExpression p = Expression.Parameter(typeof(T), propertyName);rn rn Expression body = Expression.Property(p, typeof(T).GetProperty(propertyName));rn rn var lambda = Expression.Lambda>(body, p);rnrn return lambda.Compile();rn rnrn 用上面的方法可以传入,rnrndct.Income.Where(predicate).OrderByDescending(OrderExpress.DynamicLambda(sort)).Skip(startIndex - 1).Take(pageSize).ToList();rnrnrn 问题是这个要传入一个类型的参数,怎么通过反射直接取得类型的实参。。rnrnrn 怎么样做我只要传入排序的字符就行了,不需要传入类型。。rnrndct.Income.Where(predicate).OrderByDescending(OrderExpress.DynamicLambda(sort)).Skip(startIndex - 1).Take(pageSize).ToList();rnrn
请各位高手帮忙解决!谢谢!!
我想使用程序来直接把搜索引擎的结果保存下来,在google网站搜索‘delphi'以后的url是这样:http://www.google.com/search?q=delphi&ie=UTF-8&oe=UTF8&hl=zh-CN&lr=rn在q=delphi以后的'&ie=utf-8&oe=utf8&hl=zh-cn&lr='是什么意思?rn还有程序搜索以后显示“ 404 not found"是什么意思?
请C++高手帮忙解决一下!!谢谢!!
想把要一个被当作字符串处理的运算符再恢复到原来可运算的功能该怎么做?rn 比如: string s="*";rn int i=3,j=6;rn 怎么样运算3*6呢?rn
请高手帮忙解决一下,谢谢
我想做个象winnamp的播放程序,可是winnamp里调节声音是怎么实现的呢,她并不是直接调用系统的调节音量程序,请高手能帮帮忙,即使没有代码,能给个方案也行
紧急问题,请高手帮忙解决,谢谢!!!!
请问怎样在主框架函数里面调用函数而值返回到文档类的变量呢?rn具体情况:rn 主框架类里面调用的函数:HDIB WINAPI ReadData();rn 要把值返回到文档类的m_hDIB变量。rn出现的问题是不能正常显示图象了。rn是不是还要在主框架类里面调用文档类的OnOpenDocument呢?rn请指教!!!不胜感激!!!
请高手帮忙解决这个难题,谢谢
rn我想请大家帮我修改一下我的毕业设计。我的数据库名为,ODBC的别名为med_manage,其连接路径为D:\毕业设计2\Data中MYDB.mdb。我主要的问题一是:在frmPartQuery界面中查询不到结果,在其代码中trim(ComboBox4.Text )<>''的值为空;二是:在数据模板DM2中公用函数procedure TDM2.Updatequantyfy不能实现库存数量改变(即在frmmedicinescomein界面中进行药品进货后,其进货数量字段不能加到药品信息表的库存量字段中,当在frmsell界面中进行销售后,其销售数量字段不能加到药品信息表的库存量字段中)。rn如果有时间,请帮帮我。rn谢谢!!rnrn下载地址:rnhttp://www.dusum.net/毕业设计2.rar
高手请帮忙!!谢谢!!!!!!!!!!
我在新网有个sqlserver的数据库!上传了若干表,再用过一段时间后,某个表我想将一个int型的字段给为“标示”列!!!rn怎么能既改变其字段属性,又保留原有的值???rnrn 我用如下办法总是出错:rnALTER TABLE 表 ADD 编号1 bigint identity(1,1) not nullrnSET IDENTITY_INSERT 表 ONrnupdate 表 set 编号1=编号 (错误提示:无法更新标识列编号1)rnSET IDENTITY_INSERT 表 OFFrnALTER TABLE 表 DROP COLUMN 编号 rnexec sp_rename '表.编号1','编号'rnrn在“update 表 set 编号1=编号”时总是出错:无法更新标识列编号1rn没有编号重复,类型也没问题rn由于是在远程,所以不能使用企业管理器!!rn
请高手帮忙!谢谢!
我有一个朋友在WIN98的“控制面板”下的“用户”中新建了一个“用户aa”,然后用此用户名aa登陆到WIN98后,在C盘上桌面上保存了许多文件,但没过多久,此用户名aa被删除,随之这些文件也被删除,请问各位高手,有没有办法将这些文件找到或恢复?
请高手帮忙,谢谢!!
我昨天数据库日志*.LDF文件丢失,我通过网上工具找回收站的东西,找到所有,但rn今天再恢复数据库时,报错:不是什么意思,难道是数据文件有错??rn我现在不知道是否可以忽略错误再去建数据库,请高手帮忙,谢谢!!什么意思???rn运行:rnCREATE DATABASE bpcs_prodrnON PRIMARY (FILENAME = 'd:\bpcsdbbk\bpcs_prod_data.MDF')rnFOR ATTACHrnGOrn报错:rnerver: Msg 5172, Level 16, State 15, Line 1rnThe header for file 'F:\bpcs_data\bpcs_prod_data3' is not a valid database file header. The PageAudit property is incorrect.rnServer: Msg 5105, Level 16, State 1, Line 1rnDevice activation error. The physical file name 'F:\bpcs_data\bpcs_prod_data3' may be incorrect.rnServer: Msg 1813, Level 16, State 1, Line 1rnCould not open new database 'bpcs_prod'. CREATE DATABASE is aborted.rnrn
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法