2015-11-17 51 views
1

我正在使用以下3個內容閱讀網站內容。我使用了一個沒有太多內容的示例域名。通過「請求」獲取HTML內容的Python返回部分響應

url = "http://localbusiness.com/" 
response = requests.get(url) 
html = response.text 

它返回以下html內容,其中當您檢查視圖源時,網站包含更多html。我在這裏做得不對

Python版本2.7

<html><head></head><body><!-- vbe --></body></html> 

回答

2

嘗試設置User-Agent

import requests 

url = "http://localbusiness.com/" 

headers = { 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36', 
    'Content-Type': 'text/html', 
} 

response = requests.get(url, headers=headers) 
html = response.text 

由請求設置的默認User-Agent'User-Agent': 'python-requests/2.8.1'。嘗試模擬請求來自瀏覽器而不是腳本。

+0

這個伎倆。謝謝。 – rclakmal

0

@jason正確回答它,所以我延長他的答案的原因

爲什麼會發生

  1. 一些DOM元素代碼通過Ajax的改變調用和JavaScript代碼,這樣不會看到您的呼叫的響應(儘管這不是這裏的情況,你已經在使用查看源代碼(按Ctrl + U)進行比較,而不是查看元素)
  2. 有些網站使用用戶代理來了解用戶的性質(從桌面或移動用戶開始)並提供相應的響應(如這裏可能的情況下)

其他替代

  1. 您可以使用Python的機械化模塊模仿瀏覽器來糊弄 網站(來方便時網站使用的 驗證Cookie一些短)A small tutorial

  2. 使用硒實際執行瀏覽器

相關問題