Python 3.x 在'下从网页中刮取数据;弹出窗口';箱

Python 3.x 在'下从网页中刮取数据;弹出窗口';箱,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我正试图从网站上搜集数据。问题是,只有当鼠标指针悬停在数据上时,数据才可见。。。 在下一页中,我想提取历史拥堵水平(右下角,鼠标点击时,例如2011年) 我对靓汤有点熟悉。如果可能的话,关于如何解决这个问题的任何想法 非常感谢并为这个高层次的问题感到抱歉,但我想在深入研究之前先检查一下可行性。我认为最好的方法是直接请求json文件(/en_gb/trafficindex/data.json)。 该文件包含390个项目的列表,每个城市一个。您可以从该列表中创建一个字典,其中“cityCode”作

我正试图从网站上搜集数据。问题是,只有当鼠标指针悬停在数据上时,数据才可见。。。 在下一页中,我想提取历史拥堵水平(右下角,鼠标点击时,例如2011年)

我对靓汤有点熟悉。如果可能的话,关于如何解决这个问题的任何想法


非常感谢并为这个高层次的问题感到抱歉,但我想在深入研究之前先检查一下可行性。

我认为最好的方法是直接请求json文件(
/en_gb/trafficindex/data.json
)。
该文件包含390个项目的列表,每个城市一个。您可以从该列表中创建一个字典,其中“cityCode”作为键,“ChurchingHistory”作为值,并按城市代码访问数据

请求
的示例:

import requests

url = "https://www.tomtom.com/en_gb/trafficindex/data.json"
r = requests.get(url)
data = r.json()
congestion_data = {
    i['cityTraffic']['cityCode']: i['cityTraffic']['congestionHistory'] 
    for i in data
}

print(congestion_data['MEX'])
[{'year':2010,{'year':57},{'year':2011,{'year':59}

并将其保存为csv文件:

import csv

with open('my_file.csv', 'w', newline='') as f: 
    w = csv.writer(f)
    w.writerow(['city_code', 'congestion_history'])
    for k,v in congestion_data.items():
        w.writerow((k, ', '.join('{1}:{0}'.format(*i.values()) for i in v)))

非常感谢Adam,非常棒!:)我想知道,最终我的目标是为所有城市提供这些数据。json文件是否可以实现这一点?超级,json中确实有很多有趣的数据!只是想了解一下,“拥堵数据”是什么类型的数据?(是列表吗?)可以用Openpyxl编写Excel吗?
拥塞_data
是一个包含dict列表的dict。它很复杂。我没有Openpyxl的任何经验,所以我无法帮上忙,但我发布了一个csv示例。但是数据不一致(例如,“MEX”有7项,“BAN”只有2项)所以我只是把它格式化成一个字符串。还有一个问题。你是如何找到如何访问JSON文件的?它总是只是向链接添加JSON吗?我应该在回答中提到这一点,对不起。从网站上抓取数据时,总是使用InPact。在这种情况下,我通过检查网络流量(并通过XHR过滤)找到链接加载页面时。