本文章还请认真仔细阅读,非常简单,阅读前,你可能已经掌握,xpath
我们在爬虫的时候,总会利用time.sleep(),去等待元素的出现,但是这很容易出错,因为你不知道你的网速有多卡😂,从而导致频繁报错
我相信我的注释已经很 【言简意赅】了,你一定可以看得懂
我用了一个很简单的例子,百度一下
我喜欢直接上代码
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wd = webdriver.Chrome()
wd.get('http://www.baidu.com')# wd是webdriver对象,10是最长等待时间,0.5是每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。# 这行可以理解为 每0.5s连接到百度的首页看看,有没有出来
login_btn = WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.ID,"s-top-loginbtn")))# 再举个例子 比如网速慢, 【百度一下】 左边的输入框没出来,那我们就设置,如果出现就输入 查找的关键字
WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.XPATH,"//input[@id='kw']")))
input_ = wd.find_element_by_xpath("//input[@id='kw']")
time.sleep(0.1)
input_.send_keys("python")# 再举个例子 比如网速慢, 【百度一下】 这四个字没出来(按钮),那我们就设置,如果出现就输入 查找的关键字,然后点击
WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.XPATH,"//input[@id='su']")))
baiduyixia = wd.find_element_by_xpath("//input[@id='su']")
time.sleep(0.1)
baiduyixia.click()
time.sleep(2)
wd.close()
参考链接:https://blog.csdn.net/qq_44728587/article/details/122997412
致力于办公自动化的小小程序员一枚
都看到这了,关注+点赞+收藏=不迷路!!
本文转载自: https://blog.csdn.net/weixin_42636075/article/details/126474272
版权归原作者 一晌小贪欢 所有, 如有侵权,请联系我们删除。
版权归原作者 一晌小贪欢 所有, 如有侵权,请联系我们删除。