【免費註冊】 【會員登入】 【個人資料】 【會員列表】 【論壇幫助】 【論壇搜尋】 【登出論壇】

∮Ω奧米加空間∮
∮Ω奧米加空間∮»軟體推薦區»【推薦】后羿采集器

訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆
作者 主題    
dc
管理員



性別:男
來自:瓦肯星
發表總數:10296
註冊時間:2002-05-07 16:32
(第 1 篇) 【推薦】后羿采集器

因為有需要收集特定網頁的資訊內容,使用手動複製貼上實在太花費時間了。
本來想自己寫採集器但是先 Google 了一圈發現這類軟體很成熟,不用再自己從打造~

目前用的最順手與輸出沒有限制的就屬 后羿采集器 莫屬。

官網 https://www.houyicaiji.com/

主要支援的平台:Windows、 Mac、 Linux
抓取資料的模式:1.智能模式(自動抓取所需資料) 2.流程图模式(可以自訂與模擬操作) 翻頁模式與滾動式翻頁都支援
多種資料導出方式:TXT、EXCEL、CSV和HTML文件格式,也可以直接發布到資料庫(MySQL、MongoDB、SQL Server、PostgreSQL)供您使用。
撈取出來的資料可以直接進行數據處理:字段合併,文本替换,提取数字、提取邮箱,去除字符、正則替换等等

個人免費版的功能如下


其他版本可以看這裡
https://www.houyicaiji.com/?type=pricing

一般來說如果不需要定時任務的話,免費版就很夠用囉~






Your mind to my mind,

your thought to my thought
發表時間:2022-08-08 15:39
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:203.*.*.* 編輯  引言回覆 
dc
管理員



性別:男
來自:瓦肯星
發表總數:10296
註冊時間:2002-05-07 16:32
(第 2 篇)

規則主要是透過 XPath 來處理,我們用這個案例來說明
例如這個
https://video.friday.tw/movie/filter

我們點日本
手動點選元素的XPath
為 /html/body//a[@id='4']
但是超連結 id='4' 的有兩個,分別是 日本 與 用券
<a href="javascript:;" id="4">日本</a>
<a href="javascript:;" id="4">用券</a>
我們使用
/html/body//a[@id='4'][1]
/html/body//a[@id='4'][2]
來設定點選哪一個是無效的,因為只會點選第一個。因為第一個 id=4 是我們需要點選的 日本 所以略過處理


再來我們要點選 影劇
手動點選元素的XPath
為 /html/body//a[@id='2']
但是超連結 id='2' 的有兩個,分別是 中國 與 影劇
<a href="javascript:;" id="2">中國</a>
<a href="javascript:;" id="2">影劇</a>
這次怎麼點都是第一個 中國 該怎麼辦呢 >_<
影劇那一串的 html 擷取如下
<ul class="list-inline category-sort-list planList">
                                                    <li><a href="javascript:;" id="0" class="active">全部</a></li>
                                                    <li><a href="javascript:;" id="1">免費</a></li>
                                                    <li><a href="javascript:;" id="2">影劇</a></li>
XPath這樣下就可以點到我們想要的 影劇
/html/body//ul[contains(concat(' ', normalize-space(@class), ' '),' list-inline category-sort-list planList ')]/li/a[@id='2']


當我們採集完全部的 url 之後再用 url 去採集時,我們使用 改為特殊字段 -> 當前網頁URL
預覽是
https://video.friday.tw/movie/detail/44781
但實際開網頁採集的話會是
https://video.friday.tw/movie/detail/44781/%E5%99%93%EF%BC%81%E7%A6%81%E6%AD%A2%E6%83%B3%E5%83%8F%EF%BC%81
包含了影片的中文名稱連結
所以我們要使用 數據處理 -> 新建 -> 正則提取 填入
((?:[\w])+://+([\w./]+)[\d]+)
之後採集到的就是我們要的
https://video.friday.tw/movie/detail/44781

有例外狀況上面 url 正則遇到這種的會多 /402
https://video.friday.tw/movie/detail/48755/402%E8%99%9F%E6%88%BF%E7%9A%84%E9%9D%88%E5%AE%B6%E5%A5%B3%E5%AD%A9
會取得
https://video.friday.tw/movie/detail/48755/402
要改成
((?:[\w])+://+([\w./]+)[\d])/
才會是
https://video.friday.tw/movie/detail/48755

重複使用同一個任務時,有時候會卡在等待開啟網頁。
這時候請停止採集,重新開始採集時 -> 智能策略 -> 智能切換 勾勾取消 再打勾一次 -> 啟動
就不會卡住囉~

friDay影音 -> 電影 -> 篩選電影
香港
/html/body//ul[contains(concat(' ', normalize-space(@class), ' '),' list-inline category-sort-list area ')]/li/a[@id='23']
免費
/html/body//ul[contains(concat(' ', normalize-space(@class), ' '),' list-inline category-sort-list planList ')]/li/a[@id='1']
影劇
/html/body//ul[contains(concat(' ', normalize-space(@class), ' '),' list-inline category-sort-list planList ')]/li/a[@id='2']




本帖由dc最後編輯於2022-09-08 11:54

Your mind to my mind,

your thought to my thought
發表時間:2022-08-12 10:00
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:203.*.*.* 編輯  引言回覆 
dc
管理員



性別:男
來自:瓦肯星
發表總數:10296
註冊時間:2002-05-07 16:32
(第 3 篇)

範例
https://hamivideo.hinet.net/filter.do
點 動漫 是沒問題的,但是要點下排的 最新沒有反應

看原始檔是這樣
<div class="title_in filter_option option0" style="display: none;">
          <ul class="subTab">
          <li class="" data-type="sorting" data-key="0"><a href="#">人氣</a></li>
            <li data-type="sorting" data-key="1"><a href="#">最新</a></li>
            <li data-type="sorting" data-key="2"><a href="#">評分</a></li>
            </ul>
        </div>
<div class="title_in filter_option option1" hidden="">
          <ul class="subTab">
          <li class="" data-type="sorting" data-key="0"><a href="#">人氣</a></li>
            <li data-type="sorting" data-key="1"><a href="#">最新</a></li>
            <li data-type="sorting" data-key="2"><a href="#">評分</a></li>
            </ul>
        </div>
<div class="title_in filter_option option2" hidden="" style="display: block;">
          <ul class="subTab">
          <li class="active" data-type="sorting" data-key="0"><a href="#">人氣</a></li>
            <li data-type="sorting" data-key="1"><a href="#">最新</a></li>
            <li data-type="sorting" data-key="2"><a href="#">評分</a></li>
            </ul>
        </div>

不知道為何要設計 title_in filter_option option0 , title_in filter_option option1 , title_in filter_option option2

在這裡 title_in filter_option option2 才是正確的
但是抓取的 XPath 是這樣
/html/body//div[contains(concat(' ', normalize-space(@class), ' '),' content-wrapper ')]/section/div[contains(concat(' ', normalize-space(@class), ' '),' title_in ')][contains(concat(' ', normalize-space(@class), ' '),' filter_option ')][contains(concat(' ',normalize-space(@class)),' option')]/ul/li[contains(concat(' ', normalize-space(@class), ' '),' active ')]/a
只指定了 option 所以當然沒反應

簡化成這樣,就可以點選到我們要的 最新
/html/body//div[contains(concat(' ', normalize-space(@class), ' '),' title_in filter_option option2 ')]/ul/li[contains(concat(' ', normalize-space(@data-key), ' '),' 1 ')]/a

兒童
/html/body//li[contains(concat(' ', normalize-space(@data-key), ' '),' /新版UX/影劇/兒童 ')]/a
最新
/html/body//div[contains(concat(' ', normalize-space(@class), ' '),' title_in filter_option option1 ')]/ul/li[contains(concat(' ', normalize-space(@data-key), ' '),' 1 ')]/a


限制部分
HamiVideo 單一帳號一天只能觀看 1000 部,超過會出現
系統忙碌中,請稍後再試
requests.exceptions.RetryError: HTTPSConnectionPool(host='hamivideo.hinet.net', port=443): Max retries exceeded with url: /api/play.do?id=OTT_VOD_00000xxxxx (Caused by ResponseError('too many 500 error responses'))
每天 00:00 重新計算

假設 A 欄是全部的資料 B 欄是新的資料,兩欄要做比對的話
使用條件式格式規則
套用範圍 -> A1:B6748   A的第一欄到最後一欄的數字
格式規則 -> 自訂公式 =COUNTIF($A$1:$B$6748,A1)>1
如此 B 欄位沒有在 A 欄位出現的數值顏色會是白色,就不用在人工比對拉~





本帖由dc最後編輯於2022-09-29 15:15

Your mind to my mind,

your thought to my thought
發表時間:2022-08-18 00:16
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
dc
管理員



性別:男
來自:瓦肯星
發表總數:10296
註冊時間:2002-05-07 16:32
(第 4 篇)

friDay影音 分群策展 限看至下架前兩天
https://video.friday.tw/cabinet/9254


HamiVideo 再不看就掰掰囉
https://hamivideo.hinet.net/hamivideo/more.do?type=card_vod_horizontal&key=51&menuId=163&filterType=new&getStr=0&isNew=1&isPopular=1&isScore=1&filter=1&mn=%E5%BD%B1%E5%8A%87%E9%A4%A8&submn=%E6%9C%80%E6%96%B0&lastmn=&title=%E5%86%8D%E4%B8%8D%E7%9C%8B%E5%B0%B1%E6%8E%B0%E6%8E%B0%E5%9B%89

https://hamivideo.hinet.net/hamivideo/more.do?type=card_vod_horizontal&key=51&menuId=163&filterType=new


KKTV 即將下架影片清單(親子/動漫/其他)
https://help.kkbox.com/tw/zh-tw/others/video/2641?p=kktv






Your mind to my mind,

your thought to my thought
發表時間:2022-09-03 19:04
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
dc
管理員



性別:男
來自:瓦肯星
發表總數:10296
註冊時間:2002-05-07 16:32
(第 5 篇)

KKTV 我們用 戲劇 -> 日本來當例子
https://www.kktv.me/browse/genre/%E6%88%B2%E5%8A%87?country=Japan&sort=latest

我們如果使用流程圖模式辨識出來的會有錯誤,因為
KKTV 是用 <div class="grid-list"> 包全部的列表,然後 <div class="sc-5c2eae8c-0 jBxRez block-list "> 再包
<div class="block-list__main-container" style="transform: translateX(0%);"> 再來 <div class="block-list__item" style="min-width: calc(25% - 12px); margin: 0px 6px;">
<div class="cover-view" role="none" style="width: 185px;"> 之後 <div class="cover-view__header" style="height: 247px; padding-top: 0px;"> 最後 <a class="cover-view__img" role="presentation" href="/titles/01000585"> 才是我們要的

但是不管怎麼下 XPath 我們要的 縮略圖連結 都是一包黏在一起
手動點選列表
/html/body/div[1]/div/div[contains(concat(' ', normalize-space(@class), ' '),' layout ')]/main[contains(concat(' ', normalize-space(@class), ' '),' info-layout ')][contains(concat(' ',normalize-space(@class)),' sc-bb48fc8f-')][contains(concat(' ', normalize-space(@class), ' '),' cGWOpj ')][contains(concat(' ', normalize-space(@class), ' '),' browse ')]/div[contains(concat(' ', normalize-space(@class), ' '),' grid-list ')]/div[2]/div[contains(concat(' ', normalize-space(@class), ' '),' block-list__main-container ')]/div
提取數據
//a[contains(concat(' ', normalize-space(@class), ' '),' cover-view__img ')]/span[1]/img[1]/../..
一個一個加測試時可以過,但實際抓取時沒有資料~

紅色的 div[2] 依序 3 4 5 6 7 下去


所以這時候只能改用 智能模式
他會正確的取得每個 block-list__item 的資訊,我們可以刪除其他的數據只留下 縮略圖連結 ,我們再 深入採集 每一部影片的詳細資訊即可。




本帖由dc最後編輯於2022-09-21 11:12

Your mind to my mind,

your thought to my thought
發表時間:2022-09-21 11:12
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
所有時間均為GMT+8, 現在是2022-11-29 02:32    
訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆

快速回覆
主題 ( 回覆文章可以不輸入標題 )
URLs自動分析
有回覆時郵件通知
禁用表情符號
使用簽名

<聯絡我們 - OMEGA - 控制面板>

Powered by Centaur & Joksky & DC, ver 2003.08.14
Copyright ©2002-2008 PHPY.COM


頁面生成時間:0.01166296005249