等等等!客官不要心急,等全部加载出来了就完全是你的了

经过近一周时间终于搞定了,由于ajax网页内部非常复杂,导致爬虫爬取的时候如果网页内部一些元素尚未完全出现会出现各种webdriver.find_element定位不准的问题,并且由于不同的浏览器工作细节并不完全相同,导致使用chromedriver能定位的phantomjs不行,反之亦然,这方面是常常遇到的,看看github上coder们的困惑:

Phantomjs cannot find element where chrome and firefox can

发生问题多种,比如无法找到,无法定位到,有遮罩等,其实问题就是一个,网页还没有完全加载完毕,下面的解答:

Python selenium —— 一定要会用selenium的等待,三种等待方式解读

关于selenium 的应用,这个博客下面还有很多相关文章不错推荐学习。

下面是我的代码,一个技术小白只追求能弄出来的代码:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #导入模拟点击
import re
import codecs
from time import sleep  #导入等待 无比重要的等待browser = webdriver.Chrome()  #mac系统的话chromedriver()放到 usr/local/bin/ 下面就可以 不需要禁用sip
browser.get('https://www.你的网址')
elem = browser.find_element_by_class_name("J-search-input")
sleep(5)
elem.send_keys(u'搜索框输入中文')
elem.send_keys(Keys.RETURN)
sleep(5)
browser.find_element_by_partial_link_text("你要点击的").click() #用phantomjs返回找不到,应该也是网页没有完全加载完成导致的
print (browser.current_url)
htmlstart = browser.page_source
digurl = re.findall(r'''data-hippo-type="shop" title=(.*?)>''',htmlstart,re.S)
i=0
for each in digurl:i +=1print (each)for j in range(0, 2):browser.find_element_by_partial_link_text('下一页').click()browser.implicitly_wait(100)  #隐式等待100秒,对于我这个数据爱好者来说,这个时间完全可以等print(browser.current_url)htmlloop = browser.page_sourcedigurlloop = re.findall(r'''data-hippo-type="shop" title=(.*?)>''',htmlloop,re.S)k = 0for each in digurlloop:k += 1print (each)browser.quit() #这点比phantomjs好,因为chrome自动退出就知道运行完成了。#上面的时间等待如果可以就直接爬到第50页,如果被拦截,就可以点击到第10页,第20页这样summary:open Chrome, Firefox or phantomjs and sleep for 1 minute to wait for all html loaded. 昨日运行代码,明明可以点击,今日又定位不到元素了,原因应该是网页打开之后一个活动推广图片盖住元素,但是等待再久也没用,于是换了phantomjs解决了,还是不去研究网页自己怎么加载的,只要网页一改 也还要改代码,如果等待也还是解决不了的话,就是更换driver,driver其实很多,东方不亮西方亮

简单粗暴彻底解决selenium+chromedriver无法定位各种元素的方法相关推荐

  1. Selenium ChromeDriver 截图标记指定元素的方法

    phantomjs 是无头浏览器的代表,可以截全屏的图,对于标记元素来说是很简单的;不过最新的 Selenium 版本表示不再支持:所以只能使用其他的代理品; 正好 chrome ,Firefox 等 ...

  2. 解决selenium + chromedriver模拟登录被淘宝反爬

    解决selenium + chromedriver模拟登录被淘宝反爬 问题 ​使用 selenium + webdriver 模拟淘宝登录时,出现滑动验证码反爬,尝试程序模拟滑动滑块,以及在程序打开的 ...

  3. Python selenium根据class定位页面元素,xpath定位

    Python selenium根据class定位页面元素 在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写 ...

  4. selenium第三课(selenium八种定位页面元素方法)

    selenium webdriver进行元素定位时,通过seleniumAPI官方介绍,获取页面元素的方式一共有以下八种方式,现按照常用→不常用的顺序分别介绍一下. 官方api地址:https://s ...

  5. java猴子分桃问题_通俗易懂、简单粗暴得解决猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  6. 通俗易懂、简单粗暴地解决各类猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  7. java 5只猴子分桃_通俗易懂、简单粗暴得解决猴子分桃问题

    c编程技巧-117个问题解决方案示例 79.2元 包邮 (需用券) 去购买 > 起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一 ...

  8. 【纪念,大年三十,IP第一次被封】IP被封,没法练习。用代理?太麻烦了,教你一招简单粗暴的解决办法!!!

    背景 博主打算利用scrapy框架进行豆瓣TOP250的全站爬取.结果由于连续运行多次,被网站识别出来了,就有了下面这个图片:(只要不登录,怎么刷新都是这个页面) 关于IP被封 第一反应,大家一定会想 ...

  9. 打开此电脑一直在读条简单粗暴的解决方法亲测有效!!!

    打开文件夹,在上面找到 查看-选项- 在常规-隐私-单击清除,即可 还慢的话,你要把查看预览修改一下 右键打开以下是我的设定,改了后一定变快!但仅供参考

最新文章

  1. 爬虫之lxml模块中etree.tostring函数的使用
  2. WebRTC的拥塞控制技术转
  3. 纯数学教程 Page 203 例XLI (1)
  4. C++静态全局变量问题
  5. Segments POJ 3304 直线与线段是否相交
  6. Vuex State模块化
  7. [OIBH] 糖果盒(Candy Box)——又一个最大子矩形
  8. 2003 r2 64 iis php mysql_关于在win2003中,iis+php+mysql 配置的问题
  9. Java----日期算法(计算两个date类型的时间差)
  10. 2021首届“科创中国”开源创新榜评选来了,你优秀的开源内容应该上榜,立即参加
  11. ubuntu下显示文件按数字排序
  12. 零基础学python电子书-资料│最适合大学生零基础学的Python视频+电子书
  13. 千万千万不要运行的Linux命令
  14. java毕业设计高校多媒体设备报修管理系统源码+系统+数据库+lw文档+调试运行
  15. 【C系列】结构体数组初始化方法
  16. 什么是三网合一短信接口呢
  17. 42表盘直径是从哪测量_手表尺寸怎么选择 手表尺寸怎么测量
  18. Automatically manage signing
  19. 计算机学校属于什么学历,技校毕业是什么学历 技校属于什么文凭
  20. 协同数据交换平台详细设计方案(word)

热门文章

  1. 【图论专题】BFS中的双向广搜 和 A-star
  2. java线程开启不了_Java中多线程启动,为什么调用的是start方法,而不是run方法?...
  3. python一个字母红了_Python练习:最后一个字母/第一个字母
  4. vue 数组中嵌套数组_来,一起聊聊Excel中的数组
  5. 4.04Day14递推、三元表达式、列表/字典推导式、匿名函数
  6. poj 3254 Corn Fields (状态压缩DP)
  7. hdu3790 最短路径问题(spfa)
  8. Nginx rewrite正则匹配重写
  9. Linux服务器常见问题
  10. 关于浮点数的json解析