【发布时间】:2019-04-09 15:06:30
【问题描述】:
我喜欢从这个page 获取表格内容。以下是我的代码,我得到了 NaN(没有数据)。数字怎么不显示?如何抓取具有相应数据的表格?谢谢。
【问题讨论】:
-
page_source将为您提供与请求相同的内容,即任何 js 执行之前的 html。
标签: javascript python selenium-webdriver web-scraping
我喜欢从这个page 获取表格内容。以下是我的代码,我得到了 NaN(没有数据)。数字怎么不显示?如何抓取具有相应数据的表格?谢谢。
【问题讨论】:
page_source 将为您提供与请求相同的内容,即任何 js 执行之前的 html。
标签: javascript python selenium-webdriver web-scraping
你可以从 api 得到一个不错的 json 格式:
import requests
import pandas as pd
url = 'https://api.blockchain.info/stats'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
params = {'cors': 'true'}
data = requests.get(url, headers=headers, params=params).json()
# if you want it as a table
df = pd.DataFrame(data.items())
选项 2:
让页面完全呈现。有更好的方法将 wait 与 Selenium 一起使用,但很快就会在那里等待 5 秒以显示:
from selenium import webdriver
import pandas as pd
import time
url = 'https://www.blockchain.com/stats'
browser = webdriver.Chrome('C:/chromedriver_win32/chromedriver.exe')
browser.get(url)
time.sleep(5)
dfs = pd.read_html(browser.page_source)
print(dfs[0])
browser.close()
输出:
0 1 2 3
0 Blocks Mined 150 150 NaN
1 Time Between Blocks 9.05 minutes 9.05 minutes NaN
2 Bitcoins Mined 1,875.00000000 BTC 1,875.00000000 BTC NaN
【讨论】: