selenium中设置了chrome的开发者模式,window.navigator.webdriver依然是true

今天爬网站,用selenium被识别了。昨天还是一切正常。

我的chrome设置了开发者模式,但是检查后发现window.navigator.webdriver的值还是true。
有人遇到过类似情况吗?

weixin_44866837
于凡信 请问有大佬解决这个问题了吗?除了降低chrome版本
3 个月之前 回复
boomLJiE
boomLJIE 你用的是哪个版本的 ,我79的chrome 不行
4 个月之前 回复
qq_27618047
qq_27618047 回复没人不认识我: 我去试一试,多谢哥!
4 个月之前 回复
weixin_42555985
没人不认识我 回复qq_27618047: 我换了一个低版本的chrome,就解决了。
4 个月之前 回复
qq_27618047
qq_27618047 我今天爬网站,遇到跟你一样的情况了,之前还好好的,我也是设置的开发者模式,今天爬就被识别了
4 个月之前 回复

3个回答

我忘了什么时候更新的chrome79了,反正是最近几天,今天遇到滑块发现滑不过去了,然后就发现chrome79开发者模式window.navigator.webdriver是true,其他版本都是defined,不知道是chrome79这个版本的问题,还是chrome79这两天更新了什么了,你们都是最近一两天更新的吗

哪个版本可以?我也是用的79的

weixin_42555985
没人不认识我 我用的78就行
4 个月之前 回复

图片说明
ChromeDriver 79.0.3945.36版本修复了非无头模式下排除“启用自动化”时,window.navigator.webdriver是未定义的问题,v79版本应该暂时无法通过更改enable-automation设置,解决window.navigator.webdriver===true的问题。
正常使用的话,将Chrome回滚一个版本,ChromeDriver回滚对应Chrome的版本即可

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
selenium使用时的chrome driver无法驱动chrome浏览器
初次使用java+selenium ``` System.setProperty("webdriver.chrome.driver", "C:\\workspace\\software\\chromedriver\\chromedriver_win32 79\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); ``` 编译运行后出现报错: ``` Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. Build info: version: '3.9.0', revision: '698b3178f0', time: '2018-02-05T14:56:13.134Z' System info: host: 'DESKTOP-S88636J', ip: '192.168.31.91', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123) at Test1.main(Test1.java:22) ``` 我的chrome浏览器版本为:80.0.3987.100 64bit ChromeDriver : 80.0.3987.16 jdk :1.8.0_191
关于selenium/standalone-chrome的启动报错Unable to determine type from: <. Last 1 characters read: <
### 1. java的报错信息 ```html Exception in thread "main" org.openqa.selenium.WebDriverException: Unable to parse remote response: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="/assets/displayhelpservlet.css" media="all"/> <link href="/assets/favicon.ico" rel="icon" type="image/x-icon" /> <script src="/assets/jquery-3.1.1.min.js" type="text/javascript"></script> <script src="/assets/displayhelpservlet.js" type="text/javascript"></script> <script type="text/javascript"> var json = Object.freeze('{"consoleLink": "\u002fwd\u002fhub","type": "Standalone","class": "org.openqa.grid.web.servlet.DisplayHelpHandler$DisplayHelpServletConfig","version": "3.141.59"}'); </script> </head> <body> <div id="content"> <div id="help-heading"> <h1><span id="logo"></span></h1> <h2>Selenium <span class="se-type"></span>&nbsp;v.<span class="se-version"></span></h2> </div> <div id="content-body"> <p> Whoops! The URL specified routes to this help page. </p> <p> For more information about Selenium <span class="se-type"></span> please see the <a class="se-docs">docs</a> and/or visit the <a class="se-wiki">wiki</a>. <span id="console-item"> Or perhaps you are looking for the Selenium <span class="se-type"></span> <a class="se-console">console</a>. </span> </p> <p> Happy Testing! </p> </div> <div> <footer id="help-footer"> Selenium is made possible through the efforts of our open source community, contributions from these <a href="https://github.com/SeleniumHQ/selenium/blob/master/AUTHORS">people</a>, and our <a href="http://www.seleniumhq.org/sponsors/">sponsors</a>. </footer> </div> </div> </body> </html> at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:115) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) at org.zhangmeng.zhi_hui_tree.ZhiHuiTreeApplication.main(ZhiHuiTreeApplication.java:21) Caused by: org.openqa.selenium.json.JsonException: Unable to determine type from: <. Last 1 characters read: < Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'zhangmengdeMacBook-Pro.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.2', java.version: '1.8.0_221' Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.json.JsonInput.peek(JsonInput.java:122) at org.openqa.selenium.json.JsonTypeCoercer.lambda$null$6(JsonTypeCoercer.java:140) at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:126) at org.openqa.selenium.json.Json.toType(Json.java:69) at org.openqa.selenium.json.Json.toType(Json.java:55) at org.openqa.selenium.json.Json.toType(Json.java:50) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:112) ... 7 more ``` ### 2. 运行环境 这个selenium/standalone-chrome我是拉的这个(镜像)[https://github.com/SeleniumHQ/docker-selenium] 然后就是启动镜像 ``` docker run -d -p 4444:4444 --shm-size=2g --name selenium selenium/standalone-chrome ``` 我的java代码是这样的 ```java SpringApplication.run(ZhiHuiTreeApplication.class, args); ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.addArguments("headless", "no-sandbox", "window-size=1200x800"); WebDriver webDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4445"), chromeOptions); webDriver.get("https://www.baidu.com/"); Thread.sleep(2000); WebElement element = webDriver.findElement(By.xpath("//*[@id=\"tsf\"]/div[2]/div[1]/div[3]/center/input[1]")); System.out.println(element.getText()); webDriver.quit(); ``` 我的maven信息 ```java <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-server</artifactId> <version>3.141.59</version> </dependency> ``` ### 3. 忙活半天了,不知道怎么解决,求懂的大神帮忙看看,感谢
python selenium 无头模式下 报错403 <!-- a padding to disable MSIE and Chrome friendly error page -->
在 正常浏览器弹出模式下是正常可以获取到源码的。但是在无头模式下 出现错误。 无头模式配置如下 # 创建chrome参数对象 options = webdriver.ChromeOptions() options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错 options.add_argument('window-size=1600x900') # 指定浏览器分辨率 options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面 options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 browser.get("https://www.apple.com.cn/") print(browser.page_source) 试了百度,apple 都可以正常输出源码,但是就一个网址报错,报错内容如下 html><head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> <hr><center>Apple</center> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> 这是什么原因 求解。 怎么才能爬取呢? 我是要想在centos 服务器上运行这个脚本的 ,但是爬取不到。
selenium切换页面出现混乱怎么回事?
``` bw = webdriver.Chrome(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe') bw.get("http://www.baidu.com") bw.execute_script("window.open('https://www.douban.com/')") bw.execute_script("window.open('https://www.bilibili.com/')") bw.execute_script("window.open('https://www.taobao.com/')") bw.switch_to.window(bw.window_handles[3]) ``` 在调试页面切换效果的时候发现,是按handles[0] 为百度、 handles[1]为淘宝 handles[2]为b站、 handles[3]为豆瓣,的对应进行切换的。怎么和打开页面顺序也是页面排列顺序坐标不一样呢?
请问selenium3.7.0支持chrome62.0.3202.89(正式版本) (64 位)吗
求解答呀,selenium是cmd中用pip直接下载的,正确安装了chromedriver,path也配置了,输入 from selenium import webdriver driver = webdriver.Chrome() 后仍然报错如下: Traceback (most recent call last): File "C:\Users\baobei\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start stdout=self.log_file, stderr=self.log_file) File "C:\Users\baobei\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 707, in __init__ restore_signals, start_new_session) File "C:\Users\baobei\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 990, in _execute_child startupinfo) FileNotFoundError: [WinError 2] 系统找不到指定的文件。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> driver = webdriver.Chrome() File "C:\Users\baobei\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__ self.service.start() File "C:\Users\baobei\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
python怎么用selenium获取请求头?
python怎么用selenium获取请求头? ``` d = selenium.webdriver.common.desired_capabilities.DesiredCapabilities.CHROME d['loggingPrefs'] = {'performance': 'ALL'} # --------------------分割线---------------------- browser.get_log('performance') ``` 这个方法已经试过了,不好使,会出现异常: ``` selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: log type 'performance' not found ``` 说是新版本不支持,请问该怎么解决?
求助:selenium+webdriver.Chrome打开浏览器地址栏只显示data;怎么解决?
用selenium+webdriver打开浏览器,只显示data; Chromedriver与chrome版本相对应,python、python\scripts、Chromedriver环境变量都配置好了,但是还是打不开浏览器 代码如下: ![图片说明](https://img-ask.csdn.net/upload/201911/30/1575104145_327134.png) 运行结果报错: ![图片说明](https://img-ask.csdn.net/upload/201911/30/1575104238_288471.png) 请问该如何解决?
selenium打开chrome窗口报错
Java通过selenium模拟打开chrome窗口报错 出现 "您使用的是不受支持的命令行标记:--ignore --certificate --errors。稳定性和安全性会有所下降"。 Chrome浏览器版本是 44.0.2403.157 chromedriver的版本是2.9 请问如何设置能过滤该错误?哪位同仁贴个代码看看。
selenium进行浏览器遍历打开网页时,只有第一个能成功,第二个提示'WebDriver' object has no attribute 'driver_choose'
代码如下:driver是保存的根据不同传入值选择不同浏览器 from selenium import webdriver import time import csv import driver browser_text = ['chrome', 'firefox', 'ie', 'qq'] for text in browser_text: print(browser) driver = driver.driver_choose(text) driver.maximize_window() driver.get("http://www.baidu.com") driver.find_element_by_name("wd").send_keys("selenium") driver.find_element_by_id("su").click() time.sleep(3) print(driver.title) driver.quit()
selenium unittest中框架报错
```from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleep import unittest driver=None class Webtours(unittest.TestCase): @classmethod def setUpClass(cls): global driver driver=webdriver.Ie() @classmethod def tearDownClass(cls): driver.quit() def testOpenWeb(self): driver.get("http://localhost:1080/webtours") sleep(3) def testLogin(self): sleep(3) driver.switch_to.default_content() driver.switch_to.frame("body") driver.switch_to.frame("navbar") driver.find_element_by_name("username").send_keys("zhangsan1") driver.find_element_by_name("password").send_keys("1") driver.find_element_by_name("login").click() sleep(3) ``` 报错如下 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\admin\Desktop\WebTours.py", line 21, in testLogin driver.switch_to.frame("body") File "E:\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\switch_to.py", line 87, in frame raise NoSuchFrameException(frame_reference) selenium.common.exceptions.NoSuchFrameException: Message: body ---------------------------------------------------------------------- Ran 2 tests in 15.415s FAILED (errors=1) >>>
爬虫爬取aqistudy网站问题
### 一、概述 先贴上网站首页地址:https://www.aqistudy.cn/historydata/ 需要抓取对应city下的逐月数据,最终需要爬取的网站示例如下:https://www.aqistudy.cn/historydata/monthdata.php?city=%E5%8C%97%E4%BA%AC 我所使用到的代码可以参考这一篇:https://www.jianshu.com/p/87ab84828a5d 爬取这个网站的初衷只是想练习一下爬虫,并且网上有大量关于爬取该网站的示例,我选用的是python+scrapy+selenium的方法。但是 **参考目前网上的爬取方法并不可行**,主要的问题如下: ### 二、主要问题 #### 2.1.开发者模式下调试最终页面会被网站识别 ![图片说明](https://img-ask.csdn.net/upload/202003/18/1584524701_300942.png) 解决方法我已经找到,参考 https://www.liuyixiang.com/post/109399.html 主要问题在于页面上的endebug函数,对它进行对应处理后就可以进行调试。 #### 2.2.使用chromedriver模拟登陆同样会被识别 在有头模式下对最终网站模拟登陆仍会弹出上述页面(无头也尝试过),说明网站依然监测到了爬虫。我对之前的endebug函数进行了JS反混淆,但是仍看不出反混淆后的代码是如何识别到chromedriver的,或者它和2.1有什么共性因素而被识别出来(不确定是否是这样做,初学者多多包涵)。 如果对网站的JS加载进行停用,如下对middlewares设置,那么不会弹出非法调试的页面,但是需要爬取的AQI等数据无法完全加载出来。 ``` class AreaSpiderMiddleware(object): def process_request(self, request, spider): prefs = { 'profile.default_content_setting_values': { 'images': 2, 'javascript': 2 # 2即为禁用的意思 } } chrome_options = Options() chrome_options.add_experimental_option('prefs', prefs) # 禁止加载图片,JS chrome_options.add_argument("--disable-extensions"); chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) self.driver = webdriver.Chrome(chrome_options=chrome_options) if request.url != 'https://www.aqistudy.cn/historydata/': self.driver.get(request.url) js = "window.endebug = () => true;return endebug()" # 执行js self.driver.execute_script(js) time.sleep(1) html = self.driver.page_source self.driver.quit() return scrapy.http.HtmlResponse(url=request.url, body=html.encode('utf-8'), encoding='utf-8', request=request) ``` 所以我目前能想到的是可否参照2.1的方法对网页加载运行到endebug时进行暂停,然后再重写JS方法,但是具体方法不知道怎么写。 或者针这种情况是否有更好的策略,希望有大神指点下,感谢!!!
这类js的button如何selenium定位?
![图片说明](https://img-ask.csdn.net/upload/202004/03/1585920026_497929.png) 请教如何定位这个button 我尝试用了以下四种办法都不行,请大佬赐教! ``` find_element_by_link_text('停止服务').click() WebDriverWait(driver, 10).until(EC.ElementToBeClickable(By.CssSelector("button.buttons2"))).Click() driver.find_element_by_class_name('buttons2').click() WebDriverWait(driver, 10).until(lambda the_driver: the_driver.find_element_by_xpath('//button[@name="StartButton"]').click(), '失败') ```
selenium单元测试用例调用不了,提示<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<unittest.loader._FailedTest testMethod=test_login>]>]>,只执行登录文件没有问题
test_login代码如下: from time import sleep import unittest import random, sys sys.path.append('test_case/models') sys.path.append('test_case/page_obj') from .models import myunit, function from .page_obj.loginPage import login class TestLogin(myunit.MyTest): '''社区登录测试''' # 测试用户登录 def user_login_verify(self, username, password): login(self.driver).user_login(username, password) def test_login(self): '''用户名密码正确''' self.user_login_verify("cs", "Cs88888") sleep(2) po = login(self.driver) self.assertEqual(po.user_login_success(), "消防管理信息系统") function.insert_img(self.driver, "user_pawd_ture.jpg") if __name__ == "__main__": unittest.main() 主文件如下: from HTMLTestRunner import HTMLTestRunner from email.mime.text import MIMEText from email.header import Header import smtplib import unittest import time import os if __name__ == '__main__': fp = open('./bbs/report/result.html', 'wb') # 创建测试报告,以写的方式存入某个路径 runner = HTMLTestRunner(stream=fp, title="测试报告", description="用例执行情况:") test_dir = 'D:/mztestpro/bbs/test_case' discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py') runner.run(discover) fp.close()
selenium与sikuli结合
多个Test:在使用selenium测试一个登陆界面(longinTest)后,使用sikuli查找主页面中的截图并点击该按钮(BiduiRenwuTest),总是提示找不到图片"(FindFailed--E:\\workspace\\study\\ImageIdentifyAutoTest\\image\\Face\\shouye\\1585552676831.png")。(两个Test是按照先后顺序执行的) 解决方案:将BiduiRenwuTest中的代码合并到第一个Test执行,就没有错误了,求助,为什么??? ``` @Test public void loginTest() throws InterruptedException, FindFailed { driver.get(baseUrl + "/"); driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div/ul/li[1]/input")).sendKeys("sa"); driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div/ul/li[2]/input")).sendKeys("1"); driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div/ul/li[3]/input")).click(); Thread.sleep(3000); } @Test public void BiduiRenwuTest() throws FindFailed { //保证页面在前端 Screen screen = new Screen(); Pattern biduirenwu = new Pattern("E:\\workspace\\study\\ImageIdentifyAutoTest\\image\\Face\\shouye\\1585552676831.png"); screen.wait(biduirenwu,5); screen.click(biduirenwu); System.out.println("insert biduirenwu ok!"); } ```
selenium 正则表达式不知哪里有问题,运行无反应
from selenium import webdriver import re def juchao(keyword): browser = webdriver.Chrome() url = "http://www.cninfo.com.cn/new/fulltextSearch?notautosubmit=&keyWord=" + keyword browser.get(url) data = browser.page_source # print(data) browser.quit() p_title = '<span title class="r-title">(.*?)</span>' p_href = '<div class="cell"><a target="_blank" href="(.*?)" data-id=.*?</div>' p_date = '<span class="time">(.*?)</span>' title = re.findall(p_title, data, re.S) href = re.findall(p_href, data) date = re.findall(p_date, data, re.S) for i in range(len(title)): title[i] = re.sub(r'<.*?>', '', title[i]) href[i] = re.sub('amp;', '', href[i]) date[i] = date[i].split(' ')[0] print(str(i + 1) + '.' + title[i] + '-' + date[i]) print(href[i]) keywords = ['理财', '现金管理', '纾困'] for i in keywords: juchao(i)
python爬虫,使用selenium爬取某宝数据,爬虫代码能正常运行,但是控制台只打印了一个商品的信息
1、 环境:pycharm 浏览器:chrome 描述:使用selenium爬取某宝数据,爬虫代码能正常运行(可以对元素进行定位,可以下拉滑动条、可以通过修改url去到下一页),但是控制台只打印了一个商品的信息,其余爬取的信息没有被打印出来 2、代码如下: ``` """ 爬取淘宝商品步骤: 1、打开谷歌浏览器,访问淘宝网站:找到淘宝的 url 2、定位搜索框和搜索按钮(F12,使用元素选择器进行定位,复制 XPath),要完成的动作→输入要搜索的商品,然后点击搜索按钮 3、在登陆界面停留 10 秒,手机扫码登陆(需手动),高级一点的方法可以自送输入账号密码登陆 4、进入搜索结果页面,模仿人浏览商品时的动作→下拉滑动条到页面的最后,拉5次,拉的过程有暂停 """ from selenium import webdriver # 需要一款浏览器,访问淘宝网址 import time import re # 找到 输入框 找到 按钮 # 元素(输入框、按钮等) 定位 def search_product(): driver.find_element_by_xpath('//*[@id="q"]').send_keys(kw) driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click() # # 强行阻止程序运行 10s的时间 time.sleep(5) # 获取搜索结果页面的总页码 token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text token = int(re.compile('(\d+)').search(token).group(1)) return token # 元素定位 他没有前提吗?你的网速比较慢,如果元素没有加载完毕,那么你能够去定位没有加载的数据吗?没有加载出来 # 也就是说,这个加载的过程 是因为我拉动了下滑条! # 步骤:登录 拉动下滑条 采集数据 下一页 拉动下滑条 再采集数据,按这个循环! def drop_down(): # 一次拉一部分,拉的时候有暂停 range 得出 1 3 5 7 9 五个数 for x in range(1, 11, 2): time.sleep(0.5) # j 代表滑动条的五个位置:1/10、3/10、5/10、7/10、9/10 j = x/10 # 下面的 js 是 JavaScript 的语法,可以当作万能公式解决大部分网站问题 js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j driver.execute_script(js) def get_product(): # 首先获取所有的 div ,然后遍历所有的 div ,得到一个div 再去一个 div 里面寻找需要的数据 # // 代表任意位置(任意一个位置的属性属于 class="items" 的 div) # //div[@]/div[@] 代表要获取的 div 的路径 divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq item-ad "]') for div in divs: # . 代表当前目录, .// 当前目录下的任意 div标签 下的 a标签 下的 img标签 下的 src info = div.find_element_by_xpath('.//div[@class="row row-2 title"]').text price = div.find_element_by_xpath('.//div[@class="price g_price ' 'g_price-highlight"]/strong').text + '元' deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text image = div.find_element_by_xpath('.//div[@class="pic"]/a/img').get_attribute('src') # name = div.find_element_by_xpath('.//div[@class="shop"/a/span[1]').text address = div.find_element_by_xpath('.//div[@class="row row-3 g-clearfix"]/div[@class="location"]').text # 定义一个字典 product = {'标题': info, '价格': price, '订单量': deal, '图片': image, '地址': address} print(product) # 淘宝的反爬很严重,所以尽量不要模拟多次点击下一页 # 采用改 url 的方法可以避免反爬:通过分析淘宝页面的 url→https://s.taobao.com/search?q=Python&s=88 # 可以得知下一页就是在 url 后面的值 +44。即第4页的 url 为 https://s.taobao.com/search?q=Python&s=132 def next_page(): token = search_product() drop_down() get_product() num = 1 while num != token: driver.get('https://s.taobao.com/search?q={}&s={}'.format(kw, 44*num)) num += 1 # time.sleep(4) 。这个方法延迟太慢了,改用下面的只能等待方法 # 隐视等待,智能等待,最高等待时间为10s,如果超过10s,抛出异常 driver.implicitly_wait(10) # 无限循环进入网页,可能造成网页卡顿!导致数据加载不出来,解决方法是加一个延迟,等数据先加载出来再操作 drop_down() get_product() if __name__ == '__main__': kw = input('请输入你想查询的商品:') driver = webdriver.Chrome() driver.get('https://www.taobao.com/') next_page() # 这个程序可以无限制地爬取内容,淘宝无法检测出来而反爬 ``` 3、代码能正常运行,打印信息如下: ![图片说明](https://img-ask.csdn.net/upload/202003/28/1585363085_99864.jpg) 4、求各位大神帮忙解决一下T-T
selenium调用Chrome成功,打开百度失败?
import org.openqa.selenium.*; import org.openqa.selenium.WebDriver.Navigation; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.remote.server.handler.FindElement;; public class Run { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("hello world"); System.setProperty("webdriver.chrome.driver", "C:\\Users\\Lenovo\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"); ChromeDriver chromeDriver = new ChromeDriver(); chromeDriver.get("https://www.baidu.com/"); Navigation navigation = chromeDriver.navigate(); navigation.to("https://www.baidu.com/"); chromeDriver.findElement(By.xpath("//*[@id=\"mv-tiles\"]/a[1]")).click(); chromeDriver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("csdn"); } } ![图片说明](https://img-ask.csdn.net/upload/201910/19/1571473923_671979.png)![图片说明](https://img-ask.csdn.net/upload/201910/19/1571473932_841898.png) 调用浏览器成功了,但是不知道怎么打开百度网页? ``` ```
selenium chrome java 怎么实现无头模式的文件下载?
selenium chrome java 怎么实现无头模式的文件下载。
python+selenuim 爬虫时,打开浏览器显示手机模式,无法用正常浏览器模式打开,跪求大神指导。
python+selenuim 爬虫时,打开浏览器显示的是手机模式,刷新后恢复成网页模式,网上查了很多资料都解决不了,跪求大神指导。 图1 自动打开的显示界面,是手机模式 ![自动打开的显示界面,是手机模式](https://img-ask.csdn.net/upload/202002/25/1582595127_684151.png) 图2 正常打开的页面显示模式 ![正常打开的页面显示模式](https://img-ask.csdn.net/upload/202002/25/1582595168_404948.png) 图3 感觉是这个JS里面的is_mobile()导致的 ![感觉是这个JS里面的is_mobile()导致的](https://img-ask.csdn.net/upload/202002/25/1582595186_612613.png) 但是我也已经设置了user-agent值了,还是出问题,而且这个情况比较随机,有时候打开正常,有时候打开是手机模式。 只是一个编程爱好者,可能问题很低级,麻烦大神指导下应该往哪个方向走,我可以自己找资料。。。 ``` from selenium import webdriver import time options = webdriver.ChromeOptions() options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36") browser = webdriver.Chrome(options=options) browser.get("https://fgo.wiki/w/%E8%8B%B1%E7%81%B5%E5%9B%BE%E9%89%B4") time.sleep(3) ```
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
C语言荣获2019年度最佳编程语言
关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang近日,TIOBE官方发布了2020年1月编程语言排行榜单。我在前面给过一篇文章《2019年11月C语言接近Ja...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
应届生/社招面试最爱问的几道Java基础问题
本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb (【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错的还,不妨去点个Star,鼓励一下! 一 为什么 Java 中只有值传递? 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
立即提问

相似问题

2
Selenium无法停止加载
0
selenium chrome java 怎么实现无头模式的文件下载?
0
pycharm从selenium导入chrome.opthions失败
1
selenium+headless chrome实现爬虫并根据url进行长网页快照截屏(Java)
2
报错解决:selenium chromeOptions
2
python+selenium 在静默模式下使用带账号密码验证的代理报错
1
python+selenium+chromedriver如何设置“下载前询问每个文件的保存位置”?
1
java爬虫,selenium切换到子类iframe失败
1
在Selenium IED里面导出的.py文件在pycharm运行浏览器调取不了
1
使用的selenium是2.53.6以及火狐47.0.2自动化能打开火狐浏览器但是打不开网址???
1
求问!最近使用selenium+chrome的headless用于网页截图,但在加载坐标图的时候数字出现了位移,然后原因是浏览器是中文繁体的原因,但是无法修改浏览器字体为中文简体
0
Python selenium 中如何使用 JavaScript 直接选择下拉框的某个选项呢?
2
selenium调用Chrome成功,打开百度失败?
0
python+selenium怎么点击ul中的li下拉框
2
selenium有没有类似switch_to.frame()切换到不同DIV的方法
0
selenium-java 自动化测试
2
内网使用selenium无法找到.click()
1
求助:selenium+webdriver.Chrome打开浏览器地址栏只显示data;怎么解决?
2
2019年12月6日,运行selenium报错,selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
1
Python selenium Firefox 模拟F5按键无效