我正在尝试从网站上抓取数据。问题是数据仅在鼠标指针悬停在数据上时才可见... 在接下来的页面中,我想提取历史拥堵程度(右下角,例如鼠标在2011年) https://www.tomtom.com/en_gb/trafficindex/city/mexico-city
我对美丽的汤有点熟悉。关于如何解决这个问题的任何想法,如果可能的话......
非常感谢和抱歉这个高级别的问题,但我想在深入研究之前检查可行性。
答案 0 :(得分:1)
我认为这里最好的方法是直接请求json文件(/en_gb/trafficindex/data.json
)
该文件包含390个项目的列表,每个城市一个。您可以使用' cityCode'从此列表创建字典。作为密钥和拥塞历史记录'作为值,并按城市代码访问数据。
requests
的示例:
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'])
[{'年':2010年,'拥挤':}},{'年':2011年,'拥挤':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)))