<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      07selenium

      selenium

      動態網頁爬蟲:

      • 分析接口,然后通過代碼請求這個接口
      • 使用selenium+webdriver模擬瀏覽器獲取數據

      1. selenium和webdriver

      Selenium是一個Web的自動化測試工具,最初是為網站自動化測試而開發的,Selenium可以直接調用瀏覽器,它支持所有主流的瀏覽器。我們可以使用selenium很容易完成之前編寫的爬蟲。webdriver可以理解它是瀏覽器的驅動。

      selenium本質是通過驅動瀏覽器,完全模擬瀏覽器的操作,比如跳轉、輸入、點擊、下拉等,來拿到網頁渲染之后的結果,可支持多種瀏覽器

      卸載已經安裝的模塊:pip uninstall 模塊名

      2. 瀏覽器對象

      • get(url=url) :地址欄輸入url地址并確認
      • page_source :查看網頁源碼(與element內容一致)
      • maximize_window():瀏覽器窗口最大化
      • quit():關閉瀏覽器

      3. selenium定位元素

      # 使用元素定位前需要導包
      from selenium.webdriver.common.by import By
      
      # find_element 找一個元素
      # find_elements 找多個元素
      
      • find_element(By.ID, '根據標簽id屬性進行定位')
      • find_element(By.NAME, '根據標簽name屬性進行定位')
      • find_element(By.CLASS_NAME, '根據標簽class屬性進行定位')
      • find_element(By.XPATH, '根據xpath語法進行定位')
      • find_element(By.CSS_SELECTOR, '根據css語法進行定位')
      • find_element(By.LINK_TEXT, '根據標簽文本內容進行定位')
      import time
      
      from selenium import webdriver
      from selenium.webdriver.common.by import By
      
      url = 'https://www.maoyan.com/board/4?offset=0'
      
      driver = webdriver.Chrome()
      driver.get(url)
      
      driver.maximize_window()
      
      
      def get_data():
          """獲取一頁的數據"""
          dds = driver.find_elements(By.XPATH, '//*[@id="app"]/div/div/div[1]/dl/dd')
          for dd in dds:
              # text屬性:獲取當前元素下的所有文字
              print(dd.text.split("\n"))
              print("-" * 100)
      
      
      while True:
          get_data()
          try:
              driver.find_element(By.LINK_TEXT, "下一頁").click()
              time.sleep(2)
          except Exception as e:
              print(e)
              print('爬取完成')
              driver.quit()
              break
      
      

      4.節點對象操作

      • send_keys('') 搜索框發送內容
      • click()     點擊
      • text 獲取文本內容
      • get_attribute('src') 獲取屬性值
      • find('')   查找響應中的字符串

      5. 無界面模式

      from selenium import webdriver
      
      options = webdriver.ChromeOptions()
      # 添加無界面參數
      options.add_argument('--headless')
      browser = webdriver.Chrome(options=options)
      

      6. 打開新窗口和切換頁面

      • selenium中沒有專門的打開新窗口的方法,是通過execute_script()來執行js腳本的形式來打開新窗口的

        driver.execute_script("window.open('https://www.douban.com/')")
        
      • 在selenium眼中,新窗口是不會變成當前執行命令的窗口 -1為切換到最新(最后)顯示的窗口 ,0為切換到初始窗口
      driver.switch_to.window(driver.window_handles[-1])
      
      • 關掉當前窗口,回到初始的窗口視角

      • driver.close()
        driver.switch_to.window(driver.window_handles[0])
        

      6. selenium-iframe

      網頁中嵌套了網頁,先切換到iframe,然后再執行其他操作

      • 切換到要處理的Frame

        driver.switch_to.frame(frame節點對象)
        
      • 在Frame中定位頁面元素并進行操作

      • 返回當前處理的Frame的上一級頁面或主頁面

        # 返回上一級
        driver.switch_to.parent_frame()
        # 返回主頁面
        driver.switch_to.default_content()
        

      7. 操作cookie

      • 獲取cookie:driver.get_cookies()
      • 根據cookie的key獲取value:value = driver.get_cookie(key)
      • 刪除所有的cookie:driver.delete_all_cookies()
      • 刪除某個cookie:driver.delete_cookie(key)

      8. 隱式等待和顯式等待

      • 隱式等待:標簽定位時,指定一個時間,在這個時間內一直會處于等待狀態。隱式等待需要使用driver.implicitly_wait
      • 顯式等待:指定在某個時間內,如果某個條件滿足了,那么就不會再等待,針對某一操作使用。顯式等待用的方法需導包
        • from selenium.webdriver.support.ui import WebDriverWait
        • from selenium.webdriver.support import expected_conditions as EC
      posted @ 2023-04-05 00:47  LePenseur  閱讀(38)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 884aa四虎影成人精品| 免费看男女做好爽好硬视频| 一边吃奶一边摸做爽视频| julia无码中文字幕一区| 亚洲成av人片不卡无码手机版| 久久精品国产亚洲AV麻| 阜康市| 色综合人人超人人超级国碰| 四虎成人精品永久网站| 精品一区二区三区在线观看l| 国精偷拍一区二区三区| 中文字幕人妻无码一区二区三区 | 国产精品一区在线蜜臀| 精品福利视频一区二区三区| 亚洲中文字幕一区二区| 亚洲成av人片在www鸭子| 亚洲综合另类小说色区色噜噜| 久久这里都是精品二| 日本一区二区三区激情视频| 亚洲AV成人无码久久精品四虎| 四虎亚洲国产成人久久精品| 国精品午夜福利视频不卡| 精品国产一区AV天美传媒| 瑞安市| 国产老头多毛Gay老年男| 国产在线亚州精品内射| 金坛市| 搡老熟女老女人一区二区 | 午夜在线观看成人av| 最新中文字幕av无码专区不| 精品国产成人三级在线观看 | 国产精品久久久久鬼色| 亚欧成人精品一区二区乱| 99久久婷婷国产综合精品青草漫画| 蜜桃AV抽搐高潮一区二区| 一区二区三区四区五区色| 99热成人精品热久久66| 亚洲欧美电影在线一区二区| 一区天堂中文最新版在线| 久久久久国色av免费观看性色 | 中文字幕久久国产精品|