作者tomin (for pete's sake)
看板Ajax
標題Re: [問題] 如何抓取網頁原始碼
時間Sun May 24 23:21:17 2009
※ 引述《jians (沿海)》之銘言:
: 最近要寫一個網頁,必須抓取網頁原始碼
: 但是抓取的方式是不透過伺服端抓取,而是透過客戶端來抓取
: 也就是說我把抓取原始碼的程序x.php傳到位於美國的虛擬主機
: 而我在台灣連結x.php後,假設指定抓取http://www.cmyip.com/網站的原始碼
: (http://www.cmyip.com/是抓取瀏覽者IP的網站)
: 而http://www.cmyip.com/這個網站中的IP要是顯示客戶端也就是使用者的IP
: 而不是顯示位於美國的虛擬主機伺服端的IP
: 這樣說不知道各位大大們能否了解!
: 我嘗試使用過PHP的函數,但是抓取結果的IP都是美國伺服端IP
: 因為這幾天查資料後據了解JS好像能夠達成這個目的
: 我的網頁最主要的就是能夠在客戶端抓取原始碼之後存取到PHP的變數中!
: 不知道能否有辦法達成這個目的呢?有請高手指導:)
php可以辦到 有什麼事php辦不到呢...
js可以捉到客戶端的原始碼 以下這句就可以
<script>
alert(document.body.parentNode.innerHTML);
</script>
還有很多寫法
http://www.lslnet.com/linux/f/docs1/i04/big5125741.htm
只是一般來說 捉這沒什麼用
如果你想要「只用js」捉取google首頁的原始碼 恐怕難以做到
因為js無法cross domain
比較可行的辦法是 你先用php去捉回google原始碼
然後就可以用js去處理捉回來的google原始碼
從你的例子來看
先用php捉client IP 捉到後 再用js處理
BTW, 只用js捉IP的方法是用.shtml (SSI)
http://wsabstract.com/script/script2/displayip.shtml
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.40.183
※ 編輯: tomin 來自: 122.116.40.183 (05/24 23:37)
1F:→ jians:我可能解釋的不太清楚XD 我是想要可以不透過PHP去抓的方法 05/26 17:14
2F:→ jians:因為使用PHP去抓取耗費的是伺服器的流量,所以想找替代方法 05/26 17:15
3F:→ jians:不過還是謝謝你的解說:) 05/26 17:16
4F:推 Kelunyang:跨站應該是不可能的喔XD 05/26 18:03