400块钱3小时上门服务,同城附近人100米,怎么找同城的人服务,夜场女都是为了钱吗

    <strike id="t98gp"></strike>

    1. <code id="t98gp"></code>

      <nav id="t98gp"></nav>
    2. <object id="t98gp"></object>
      首頁 Python教程分享一款懶人必備的Python爬蟲神器

      分享一款懶人必備的Python爬蟲神器

      運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
      領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

      前言

      今天把最近的一個應用做好了,測試了一下運行沒有問題,剩下的就是檢驗一下結果如何.從光譜到Lab值通常使用matlab中的roo2lab(),不過經過我最近的測試發現轉換的結果并不理想,而且這個轉化的代碼也不是我寫的所以另尋他法,找到了下面這個網頁。

      分享一款懶人必備的Python爬蟲神器插圖

      動手

      有了這個網頁,很簡單就想到去解析.然后很快找到了這個api,可以看到用post提交表單請求就可以返回結果

      分享一款懶人必備的Python爬蟲神器插圖1

      于是一番操作,修改form表單,構造傳入的spectrum,但是最終請求得到的卻是一個頁面,并不是想要的json.然后許久沒寫爬蟲的我直接惱火,想到自動化工具模擬操作.可是selenium很難用而且還得去找瀏覽器新版本的驅動,隨后直接搜索一番,發現了這個神器—playwright。首先老規矩去它的首頁看看教程

      分享一款懶人必備的Python爬蟲神器插圖2

      接著安裝一下playwright以及瀏覽器的驅動

      
      pip install pytest-playwright
      playwright install

      第二步的時候很慢,所以我只等他下載好了chrome和ffmpeg直接就ctrl+c停止了,畢竟我也用不著其他的瀏覽器驅動。然后稍微瀏覽一下這個文檔功能非常豐富,不過我用到的功能也不多,接下來的使用才是真正適合我們懶人的.

      記住一行代碼

      python -m playwright codegen xxx.com

      其中xxx.com就是我們的目標網址,運行后會創建一個熟悉的自動化頁面,然后我們就進行一些我們想要的操作,比如設置開始的最小波長為400nm,然后觀察以及光源改為D65/10.一系列操作后會看到對應的代碼已經生成好了

      分享一款懶人必備的Python爬蟲神器插圖3

      至今為止我還沒有寫一行代碼,不過構造輸入的光譜還是得自己來的把這一段代碼復制下來,然后自己寫構造輸入的函數(就幾行),然后通過選擇器(直接左鍵元素復制xpath)得到lab值,這樣目標就搞定了

      整體代碼如下

      
      import time
      from playwright.sync_api import Playwright, sync_playwright, expect
      import numpy as np
      
      data_test=np.loadtxt('./dist/1_res.csv',delimiter=',')
      
      def get_str(arr):
          arr_str=""
          for i in arr:
              arr_str+=str(format(i,".2f"))+"\r\n"
          return arr_str
      
      labs=[]
      
      def run(playwright: Playwright) -> None:
          browser = playwright.chromium.launch(headless=False)
          context = browser.new_context()
      
          # Open new page
          page = context.new_page()
      
          # Go to https://www.qtccolor.com/secaiku/tool/spectrum
          page.goto("https://www.qtccolor.com/secaiku/tool/spectrum")
      
          # Click div[role="tab"]:has-text("光譜數據")
          page.locator("div[role=\"tab\"]:has-text(\"光譜數據\")").click()
      
          # Click text=最小波長:nm
          page.locator("text=最小波長:nm").click()
      
          # Fill [placeholder="\33 80"]
          page.locator("[placeholder=\"\\33 80\"]").fill("400")
      
          # Select 1964
          page.locator("select[name=\"obs\"]").select_option("1964")
      
          # Select D65
          page.locator("select[name=\"ill\"]").select_option("D65")
          # Fill textarea[name="spectrum"]
          for i in range(len(data_test)):
              inputs=get_str(data_test[i,:])
              # Click textarea[name="spectrum"]
              page.locator("textarea[name=\"spectrum\"]").click()
              page.locator("textarea[name=\"spectrum\"]").press("Control+a")
              page.locator("textarea[name=\"spectrum\"]").fill(inputs)
      
              # Click button:has-text("轉換顏色")
              page.locator("button:has-text(\"轉換顏色\")").click()
              time.sleep(1)
              # Click text=Lab0.000.000.00 >> td >> nth=1
              L=float(page.locator('xpath=//*[@id="scroll_container"]/div[1]/div/div[2]/table/tbody/tr[2]/td[2]').inner_text())
              # Click text=Lab0.000.000.00 >> td >> nth=2
              a=float(page.locator('xpath=//*[@id="scroll_container"]/div[1]/div/div[2]/table/tbody/tr[2]/td[3]').inner_text())
              # Click text=Lab0.000.000.00 >> td >> nth=3
              b=float(page.locator('xpath=//*[@id="scroll_container"]/div[1]/div/div[2]/table/tbody/tr[2]/td[4]').inner_text())
              print(L,a,b)
              labs.append([L,a,b])
          # ---------------------
          context.close()
          browser.close()
      
      with sync_playwright() as playwright:
          run(playwright)
          np.savetxt('./1_lab_res.csv',labs,delimiter=",")

      可以說從安裝到實現就幾分鐘,而且特別容易上手,我第一次用也一下就能實現效果

      分享一款懶人必備的Python爬蟲神器插圖4

      剩下的就是簡單的寫個函數計算色差啥的就沒難度了.

      最后

      大廠出品果然不同,使用它在不考慮運行效率(有異步但是我懶得看了)的情況下可以輕松實現復雜操作,懶人最愛!

      來源:https://juejin.cn/post/7140542063061237773(侵刪)

      本文鏈接:http://www.605748.com/42724.html

      網友評論comments

      發表評論

      您的電子郵箱地址不會被公開。

      暫無評論

      Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
      掃二維碼
      掃二維碼
      返回頂部
      400块钱3小时上门服务,同城附近人100米,怎么找同城的人服务,夜场女都是为了钱吗