-1
我寫了一個Python WebScrapper這樣的:完整的HTML代碼不來
import urllib2,cookielib
from BeautifulSoup import BeautifulSoup
url = 'http://www.nseindia.com/live_market/dynaContent/live_analysis/top_gainers_losers.htm?cat=G&utm_campaign=website&utm_source=sendgrid.com&utm_medium=email'
hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
}
req = urllib2.Request(url, headers=hdr)
try:
page = urllib2.urlopen(req)
except urllib2.HTTPError, e:
print e.fp.read()
content = page.read()
print content
現在,在這個網址有哪些我需要刮但whenevr我嘗試運行這段代碼返回的HTML有一個表很多<tr>
和<td>
標籤缺失。我怎樣才能得到完整的HTML打印?
這是「失蹤」的標記由JavaScript添加到目標頁面?聽起來很可能。如果沒有特定的指令,任何網絡抓取工具都有選擇地更改傳入文檔會很奇怪。 – Clive
在加載主頁之後,該表由Javascript模塊加載。你將無法以這種方式刮取數據。你應該尋找一個API。網站所有者可能有一個,但它很可能要收費。 –
如果您要查找的數據是通過JavaScript加載的,則數據可能來自AJAX調用或者存在於頁面上的其他位置。檢查瀏覽器調試器中的網絡活動以進行AJAX調用。如果有的話,那就是*你想要「刮」的東西(如果它是結構化的JSON數據,結果可能會更容易)。如果沒有AJAX調用,請檢查加載的頁面以獲取JavaScript代碼中的數據或其他頁面上其他位置的數據。 – David