發表文章

目前顯示的是有「crawler」標籤的文章

Selenium 把瀏覽器帶到前景聚焦

 Selenium 基本上是做不到把瀏覽器帶到前景的,通常是要透過 pyWin32 之類的工具來操作,而透過 pyWin32 又要先找到當前在使用的瀏覽器是哪一個(坑),苦手,只能另闢蹊逕來填這個坑。 工作環境:     Windwos 會開很多視窗,疊來疊去,也會開很多網頁     python3         Selenium         pyautogui   driver . maximize_window () pyautogui .moveTo( 500 , 20 ) pyautogui .click() driver . set_window_size ( 960 , 1080 )  結果是讓 Selenium 用全螢幕把整個視窗佔住,這時侯趕快在瀏覽器上點一下,如果有需要再把瀏覽器調成合適的大小,這樣子就可以順利把想要的網頁帶到前景來處理後續的工作。   收工!   ===================== 坑 ======================= pyWin32 找到 firefox、focus,後來不知怎地,抓到的不是工作中的 firefox  固定作業用的網站在瀏覽器中的位置(頁籤),不然作業會變得複雜

都還沒開始用爬蟲就卡關

 話說,只要提到抓網路資料,就會跑出一堆爬蟲Can do ...,bla bla bla,好像會寫幾行程式,馬上就會飛天,會鑽地,But............... 這次想要來點,登入網站抓資料,都還沒開工呢!要準備的東西一大堆,要爬蟲的工具,好像都是 python 的,和我不熟,接著還要 python 擴展,還要圖形辨識工具,還要 ocr 工具,還要…,還要…,有沒有搞錯,還沒開始就快累屎了 工作環境:   Windows 10   python 3.8.X     selenium     webdriver for selenium     pytesseract     opencv   selenium   opencv   tesseract-OCR   imagemagick 是的,想要爬網頁,先找那種不用登入的蛤,不然就得先把這些裝一裝!為什麼要影像處理的部份呢?因為要登入就要過驗證碼這關,也就是 captcha ,先把最難克服的解決掉,果然,要解決最難的問題,本身就是個大問題 先裝 python ,全部的工具裏面這個應該是最簡單的 selenium 為什麼有2個要裝呢?一個是 selenium 本身,一個是 python 要用的,都裝、都裝,省得之後夜長夢多,因為之前沒碰 python 完全不知道差在哪裏,先裝得起來再說; tesseract, opencv 同理 還要搞定編譯 opencv ,為了要處理圖形的物件,這東東可以抓出、辨識影像中的物件和它的屬性,天啊,連 c++ 都碰上了,不知道之後還要搞些什麼 然後圖形的物件,像是驗證碼找出來之後,要把圖裏面的文字認出來還是得靠ocr 後來發現處理影像讓驗證碼可供辨識的時侯, imagemagick 訊息比較多,功能也強,又多裝了一個工具,結果發現,這工具雖然已經有64位元版的了,路徑都設好了,呼叫 imagemagick 的時侯,居然出錯,只能移除,再重裝32位元版的才能行,真是折騰 折騰了一番,只把傢私傳好,不知何時能開始做菜,這些工具怎麼好像都是 linux 比較好裝的樣子啊~~ 先醬子,收工!

網頁監看功能拼裝

 監看特定網頁雖然不像ai一樣,需要大量的爬蟲抓取大量的資料,再重新整理成結構性的資料以便分析取用,但是至少要爬一個網頁,要抓其中有料的訊息,再重組成所需的訊息,甚至結合多個特定的網頁組成看板,總之多監看一個網頁,整個流程至少得做一次工。 工作環境:   Windows   Firefox + Auto Reload Tab, Refresh and monitor, Distill Web monitor   PHP + simple html dom   AutoHotKey: 重整頁籤 reload tab + 存檔 Save File   如果只是要監看多個網頁,用眼球法的話,iframe + 鷹眼就行,耐何,現在只剩白眼了,而且看螢幕霧霧的,一個不小心,就漏了 orz。 為何會出現 AutoHotKey 呢?因為又踩坑了 :p ,怎麼看個網頁也能踩坑?想要自動從一堆廢物裏面只看須要的訊息,就得濾掉一狗票的廢話,有關注的訊息時再列出來而且要給個音樂。奈何從沒認真實做爬蟲過,自已的資料都從資料庫撈的,自然就用不著爬蟲了,遇上了要帳密又要圖形認證的網頁就卡住了,進入後又因為不是開放權限的遠端,無法直接抓資料,正面打不過,繞道偷打總行吧!登入後把網頁存成檔案,還管得著怎麼處置網頁裏的一堆廢話嗎?定期更新網頁(AHK/插件),定期存檔(AHK),再定期處理存檔內容(插件),辨識出需要的元素時就放音樂(插件),可行,用了好多塊拼圖,不夠直覺,完全一個大雜匯。 只不過是想看網頁裏出現了什麼東東,應該還有(再)更(花)簡(時)單(間)的(找)方法吧,找了 n 久,爬了 n 個文,試裝了 n 個插件,終於試出了倚天和屠龍,因為好用 Firefox ,使用其他瀏覽器的,請自已找類似的插件吧,Refresh and monitor 算是比較直覺的插件,可以監看多個關鍵字,但是好像不能監看多個網站/頁籤,網頁出現關鍵字的話可以發出警示聲。 是使用 Distill Web Monitor 可以設定得比較細,可以監看多個網頁,可以指定監看網頁的區塊,可以指定監看的關鍵字,可以指定再次比對新舊網頁的時間差,關鍵字出現之後當然也會發出警示音,可惜聲音小又短,功能算是完整,目前免費。 現在很多網站都不給爬,很多插件開始收費...

PHP 抓取網頁內容筆記

最近實作抓取網頁內容,也遇到一些問題,為免那和我不好的記憶力和我分手,把重點記一下。 環境: Windows Php 5     Curl     Regular expression     Pho simple html dom 如同以往,抓取網頁之後就是要擷取特定模板(pattern) 內容,這個過程,一直以來並沒有不同。 有些情況發生了,雖然大多數的網頁用 GET 就能下載了( curl, file_get_html),有些網頁,要用 POST 方式,需要把 POST 參數代入(例如 curl: CURLOPT_POSTFIELDS),才能順利取得網頁的內容,否則一片空白,畢竟抓到這些資料來源,才能有下一步。 抓下來的資料,(十年)之前使用土法煉鋼的方式,用遁序漸進的方式,不斷的使用關鍵字炸開(explode)的方式,來取得目標的內容,雖然這等方式在現在也能達成目的,總是希望有點長進,果然,讀別人的程式碼是很有用地 XD。 如果時間上可行,測出正規表示法的比對模板,是很好的解決方式,不需要其他工具或是程式的導入,可惜,這些符號,和我真的很不熟(超生硬),有些真的花非常多的時間還測不出來,超需要慧根(是什麼,能吃嗎?),只能山不轉路轉了。 jQuery 對於擷取 DOM 有其長處,因為想直接在 PHP 上面實作,所以先把 jQuery 擱著,所幸找到了 simple html dom 的工具($html -> find(' TAG_NAME ', 0) -> plaintext;),讓這個工作變得有效率了,超級開心。 收工!