我正在設計一個鏈接抓取程序,抓取給定的URL的基本鏈接預覽字段,如頁面標題,描述和圖像等。到目前爲止,我有一個相當不錯的工作版本,它使用Python requests庫和Beautiful Soup。爲什麼我無法在Python中加載Facebook應用程序頁面?
大多數網址都可以完美呈現,但是當我嘗試Facebook應用的網址時,我得到的HTML響應與直接從瀏覽器訪問它不同。例如,如果我在瀏覽器和視圖源中導航到應用程序,則會看到特定於該應用程序的標題字段。但是,Python中的HTML響應返回通用Facebook.com標題字段。
我在試着瞭解Facebook應用程序頁面是如何向我的瀏覽器發送特定的HTML響應,以及如何向我的Python服務器發送另一個HTML響應。
Facebook應用程序例如: http://www.facebook.com/cocacola/app_106795496113635
從瀏覽器響應:
<title>Coca-Cola</title>
從Python的請求的迴應:
<title>Facebook</title>
Python代碼:
import requests
r = requests.get(url, allow_redirects=True)
html = r.text
print html
UPDATE: OK,所以才實現了Python的響應是一個Facebook登錄頁面。這是一個公共應用程序,所以問題是爲什麼它要求從我的服務器登錄。
你得到403錯誤嗎? – Froyo 2012-03-15 20:27:56
不,看起來像試圖讓我的服務器登錄 - 看到我的編輯 – Yarin 2012-03-15 21:38:52