在这个页面的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