【问题标题】:Web-scraping a javascript table with python BueatifulSoup使用 python BeautifulSoup 抓取一个 javascript 表
【发布时间】:2019-04-26 03:42:58
【问题描述】:

我无法使用 BueatifulSoup 获取一个 javascript 表,返回空数组

我试图从此页面获取数据。 https://www.hkex.com.hk/Mutual-Market/Stock-Connect/Statistics/Historical-Daily?sc_lang=en#select4=1&select5=2&select3=0&select2=3&select1=24

import requests, json
text = requests.get("https://www.hkex.com.hk/Mutual-Market/Stock-Connect/Statistics/Historical-Daily?sc_lang=en#select4=0&select5=2&select3=0&select2=3&select1=24")
data = json.loads(text)

print(data['Scty'])

【问题讨论】:

  • 你是说bueatifulsoup吗?
  • 您下载的网页包含html而不是json,所以Python会抛出错误。另外,您使用 Bueatiful Soup 的代码在哪里?
  • 我从 BeutifulSoap 开始,但没有用。所以我尝试了 Json
  • 这个页面上的哪个表?

标签: python-3.x web-scraping


【解决方案1】:

您可以使用另一个网址 - 通过查看网络选项卡找到。对响应文本进行一点字符串操作,您就有了一个可以使用json 加载的字符串,并且包含页面上的所有内容(包括所有 4 个下拉地理区域)。不需要bs4。您可以使用 json 库提取您想要的所有内容。

探索它here

import requests
import json

r = requests.get('https://www.hkex.com.hk/eng/csm/DailyStat/data_tab_daily_20190425e.js?_=1556252093686')
data = json.loads(r.text.replace('tabData = ',''))

例如,登陆页面第一行表格的路径:

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多