Re: [問題] 如何從其他網頁抓資料
上個禮拜也遇到去別的網站爬資料的工作,
我來回報一下,順便也提個問題
我的目標:
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
10/27 17:33, 2F
用 PHP 後端送這麼多次就不會吃流量嗎?
※ 編輯: content71 (101.100.181.41), 10/27/2015 20:16:54
推
10/27 23:05, , 3F
10/27 23:05, 3F
推
10/27 23:43, , 4F
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
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
5
19
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章