Re: [問題] 如何從其他網頁抓資料

看板Web_Design作者 (羅莉飼養中...)時間9年前 (2015/10/27 16:38), 9年前編輯推噓4(403)
留言7則, 4人參與, 最新討論串3/3 (看更多)
上個禮拜也遇到去別的網站爬資料的工作, 我來回報一下,順便也提個問題 我的目標: 1. 我的網站用 PHP/WordPress 2. 去某特定網站 A 的文章總表,找出某分類的所有文章 3. 把這些文章的標題、摘要、主圖片抓下來 我的設計: 1. 當有使用者進來,自動去 A 網站確認有無更新 2. 當有更新時,擷取新文章的資料 3. 存回自己網站的posts 4. 顯示 解法: A. 純前端 - jQuery Same Origin Policy 並不是不可越過,用 $.ajax 、JSONP 的方式可以把 回傳資料變成 JS 的格式。 但有時會遇到 "Uncaught SyntaxError: Unexpected token" 這是由於預期是 JS,結果來的是 HTML 解法在這 http://goo.gl/bb2nha 我是用 CORS anywhere,改掉他的 heading,這方法可行且簡單 不過其實也就是偷資料 B. 純後端 - PHP 坦白說這是我第一個 PHP project,非常弱 ^^" 我只知道後端透過 proxy 的方式 可以合法取得對方的資料 我有寫一段程式去爬對方網站,思路大概跟 jQuery 差不多 如果是我之前的 Django projects,我會用 beautiful soup 這個插件去爬 一開始是用前端的方式去做,不過後來我家工程師老大覺得不是好主意 因為假設他分類下有20個文章 每次有使用者進來,我就等於送了 HTTP request 到對方網站 21 次 所以他要我從後端做 PHP 簡單來說,我是用 file_get_contents 去索取對方的 DOMDocument 其他的思路跟前端一樣,都是取得網址後去爬摘要 我的問題: 1. 這樣就不會有連續 request 對方網站多次的問題嗎? 2. WordPress 要設定有 visitor 進來時去確認文章更新, 是透過 wp-cron 嗎? 有沒有更好的解法? 3. WordPress 有內建 feed 的功能,這是給別人使用我的網站資料用的吧? 對我去爬別人網站是否沒幫助? 4. 如果對方網站有提供 RSS feed, 是不是就可以透過 WordPress 某些內建功能轉成 posts? 可以的話,可以大概提示一下怎麼做嗎? 謝謝撥空看完 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.100.181.41 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1445935106.A.8B9.html ※ 編輯: content71 (101.100.181.41), 10/27/2015 16:40:49

10/27 17:09, , 1F
你用後端一樣是送這麼多次
10/27 17:09, 1F

10/27 17:33, , 2F
他應該是說不會讓user丟那麼多次request吃流量之類的吧
10/27 17:33, 2F
用 PHP 後端送這麼多次就不會吃流量嗎? ※ 編輯: content71 (101.100.181.41), 10/27/2015 20:16:54

10/27 23:05, , 3F
吃後端,不吃前端user吧,沒搞錯的話
10/27 23:05, 3F

10/27 23:43, , 4F
感謝 YQL好像有使用限制 剛剛突然 result 都變null
10/27 23:43, 4F

10/27 23:43, , 5F
一直抓不到資料.....
10/27 23:43, 5F

10/27 23:43, , 6F
得再試新方法了
10/27 23:43, 6F

10/28 12:18, , 7F
有流量限制沒錯,也可以找其他服務試試
10/28 12:18, 7F
文章代碼(AID): #1MBpW2Yv (Web_Design)
文章代碼(AID): #1MBpW2Yv (Web_Design)