日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python动态网页爬虫技巧Selenium(一)

發(fā)布時間:2025/4/16 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python动态网页爬虫技巧Selenium(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

implicitly_wait() 跟 WebdriverWait()的區(qū)別

  • 相同點:
  • 這兩個東西,都是為了在測試網(wǎng)頁的時候進行等待的
  • 一方面是都可以完成對于動態(tài)數(shù)據(jù)的等待和爬取。(都是一旦完成就直接溜掉~)
  • 不同點:
  • 前者是隱式等待,后者是顯式等待。可能有人要問區(qū)別了。區(qū)別很簡單。implicityly_wait()只需要使用一次,之后關于這個DOM文檔樹(好像是這個中文),中的任何一個元素,都會有這樣的一個隱式等待。但是對于后者,就是每次使用的時候都需要自己再設置一次時間。
  • 后者使用更為靈活一些,可以配合selenium自身的很多庫來進行設置,前者就比較簡單,如果沒有什么特別的要求的話,用前面的那種就可以了~

下面也展示兩者的使用方法:

  • 隱式
from selenium import webdriverif __name__ == '__main__':dr = webdriver.Chrome()dr.get("http://www.baidu.com")dr.implicitly_wait(10) # 這里~element = dr.find_element_by_id("su")print(element)dr.quit()pass
  • 顯式(配合多種庫一起用,更靈活,也更麻煩)
from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWaitif __name__ == '__main__':dr = webdriver.Chrome()dr.get("http://www.baidu.com")wait = WebDriverWait(dr, 10) # 設置某個空間等待10秒這個事件element = wait.until(EC.element_to_be_clickable((By.ID, "su"))) # 直到檢測到某個事件前一直等待print(element)dr.quit()pass

總結

以上是生活随笔為你收集整理的Python动态网页爬虫技巧Selenium(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。