如何从Windguru Spot服务中提取风速和风向?

时间:2015-12-16 20:37:59

标签: javascript

Windguru提供在风帆冲浪和风筝冲浪的某些景点提供精确风速和风向的服务,例如“http://www.windguruspot.cz/254”。我希望能够自动提取这两个变量,可能使用“wget”或类似的应用程序,生成包含其值的本地文件。

检查上述网址的源文件,我觉得它反过来访问提供我要查找的值的网址“http://www.windguru.cz/js/pak/wgs.spot.min.js”。然而,后来的javascript文件的来源非常糟糕,而且可能也有意复杂,我无法做任何事情。

4 个答案:

答案 0 :(得分:2)

API文档: http://stations.windguru.cz/json_api_stations.html

实施例

https://www.windguru.cz/int/iapi.php?q=station_data_current&id_station=87&date_format=Y-m-d+H%3Ai%3As+T

返回值: {" wind_avg":10.87" wind_max":11.84" wind_min":9.9" - 风向" 135"温度& #34;:26.1," mslp":1028.6," rh":65," datetime":" 2015-12-30 15:02: 33 ART"," unixtime":1451498553," error_details":""}

好风! 哈维尔

答案 1 :(得分:1)

经过一些研究后,我终于找到了一个可能值得分享的问题的部分解决方案。使用实用程序 wkhtmltopdf http://wkhtmltopdf.org)我可以从我感兴趣的页面(https://beta.windguru.cz/station/166)生成一个pdf文件,然后我可以使用 pdftotext < / em>提取我需要的信息。不幸的是wkhtmltopdf在我使用它之前仍然需要一些抛光:显然,除了主版本之外还有一个静态版本。主要版本运行良好,使我能够获得部分信息(风速,但不是风向)但它只能在X下工作。另一方面,静态版本在普通终端运行,但生成的pdf文件缺乏所有相关信息。

答案 2 :(得分:0)

这次跑步

#!/usr/bin/python
#
# sudo apt install BeautifulSoup
# sudo apt-get install python-paramiko
# sudo apt-get install python-pip
# sudo pip install requests --upgrade 
import requests
import urllib
from bs4 import BeautifulSoup
import re
import sys
import os
import subprocess
import datetime
import paramiko
import getpass
import signal
import sys
import os
station = sys.argv[1]
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'}
from lxml import etree

url1='https://www.windguru.cz/station/' + station
url2='https://www.windguru.cz/int/iapi.php?q=station_data_current&id_station=' + station

headers = {'Referer' : url1 }    
r = requests.get( url2, headers = headers).json()

speed=r['wind_avg']

direction=r['wind_direction']
print "{:.1f}".format(speed), "{:.1f}".format(direction)
sys.exit()

答案 3 :(得分:0)

这个更简单

#!/usr/bin/python

import requests
import sys

station = sys.argv[1]

url1='https://www.windguru.cz/station/' + station
url2='https://www.windguru.cz/int/iapi.php?q=station_data_current&id_station=' + station

headers = {'Referer' : url1 }
r = requests.get( url2, headers = headers).json()

speed=r['wind_avg']
direction=r['wind_direction']

print "{:.1f}".format(speed), "{:.1f}".format(direction)
sys.exit()

想法到这里 can't scape a value from Beautifulsoup in python