溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python+selenium 采集動(dòng)態(tài)加載(下拉加載)的頁(yè)面內(nèi)容

發(fā)布時(shí)間:2020-06-26 12:34:19 來(lái)源:網(wǎng)絡(luò) 閱讀:1901 作者:nineteens 欄目:編程語(yǔ)言

  軟件版本:

  python 3.7.2

  selenium 3.141.0

  pycharm 2018.3.5

  具體實(shí)現(xiàn)代碼如下:

  from selenium import webdriver

  from selenium.webdriver.chrome.options import Options

  import time

  # 創(chuàng)建chrome瀏覽器驅(qū)動(dòng),無(wú)頭模式

  chrome_options = Options()

  # chrome_options.add_argument('--headless')

  chrome_options.add_argument("--start-maximized");

  driver = webdriver.Chrome("D://googleDever//chromedriver.exe",chrome_options=chrome_options)

  # 加載界面

  driver.get("https://www.cfr.org/search?keyword=china")

  time.sleep(3)

  # 獲取頁(yè)面初始高度

  js = "return action=document.body.scrollHeight"

  height = driver.execute_script(js)

  # 將滾動(dòng)條調(diào)整至頁(yè)面底部

  driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')

  time.sleep(5)

  #定義初始時(shí)間戳(秒)

  t1 = int(time.time())

  #定義循環(huán)標(biāo)識(shí),用于終止while循環(huán)

  status = True

  # 重試次數(shù)

  num=0

  while status:

  # 獲取當(dāng)前時(shí)間戳(秒)

  t2 = int(time.time())

  # 判斷時(shí)間初始時(shí)間戳和當(dāng)前時(shí)間戳相差是否大于30秒,小于30秒則下拉滾動(dòng)條

  if t2-t1 < 30: 無(wú)錫看婦科好的醫(yī)院 http://www.csfk0731.com/

  new_height = driver.execute_script(js)

  if new_height > height :

  time.sleep(1)

  driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')

  # 重置初始頁(yè)面高度

  height = new_height

  # 重置初始時(shí)間戳,重新計(jì)時(shí)

  t1 = int(time.time())

  elif num < 3: # 當(dāng)超過(guò)30秒頁(yè)面高度仍然沒(méi)有更新時(shí),進(jìn)入重試邏輯,重試3次,每次等待30秒

  time.sleep(3)

  num = num+1

  else: # 超時(shí)并超過(guò)重試次數(shù),程序結(jié)束跳出循環(huán),并認(rèn)為頁(yè)面已經(jīng)加載完畢!

  print("滾動(dòng)條已經(jīng)處于頁(yè)面最下方!")

  status = False

  # 滾動(dòng)條調(diào)整至頁(yè)面頂部

  driver.execute_script('window.scrollTo(0, 0)')

  break

  # 打印頁(yè)面源碼

  content = driver.page_source

  print(content)

  以上代碼為selenium采集動(dòng)態(tài)下拉加載頁(yè)面,使用上述代碼執(zhí)行后,可通過(guò)其他方式進(jìn)行頁(yè)面元素獲取!


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI