Windguru提供在风帆冲浪和风筝冲浪的某些景点提供精确风速和风向的服务,例如“http://www.windguruspot.cz/254”。我希望能够自动提取这两个变量,可能使用“wget”或类似的应用程序,生成包含其值的本地文件。
检查上述网址的源文件,我觉得它反过来访问提供我要查找的值的网址“http://www.windguru.cz/js/pak/wgs.spot.min.js”。然而,后来的javascript文件的来源非常糟糕,而且可能也有意复杂,我无法做任何事情。
答案 0 :(得分:2)
API文档: http://stations.windguru.cz/json_api_stations.html
实施例
返回值: {" 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()