在這個頁面的html中沒有靜態的<table>
標籤。這是一個基於React的頁面,並且表格是使用javascript動態創建的。
編輯:添加一個腳本來獲取數據
要湊這個網頁,我看到兩個選項:
- 正如哈肯蓋建議,您可以使用模擬瀏覽器模擬器能夠執行JavaScript像ghost.py,phantomjs,HtmlUnit,Selenium等
- 或者你可以瀏覽html/javascript源代碼,觀看瀏覽器請求並找到數據源。
我更喜歡第二個;此腳本打印頁面的內容,包括表格中的數據:
# Python 3
import requests, re, json
def discard_format(dico):
if "_" in dico:
return dico["_"]
elif "$$" in dico:
return dico["$$"]
elif "$" in dico:
return ""
return dico
url_page = "http://www.sciencedirect.com/science/article/pii/S0378874116301696"
req = requests.get(url_page)
html = req.content.decode("utf-8")
token = re.search('"entitledToken":"(.*?)"', html).group(1)
url_data = "http://www.sciencedirect.com/sdfe/arp/pii/S0378874116301696/body?entitledToken=%s" % token
data = requests.get(url_data, cookies=req.cookies).content.decode("utf-8")
#print(data)
jsondata = json.loads(data, object_hook=discard_format)
print(jsondata)
什麼是'html'? –
對不起,我在複製代碼時犯了一個錯誤,我現在編輯它應該是 – user3089520