擅长:python、mysql、java
<p>如果您在浏览器中查看页面,并记录浏览器的网络流量,您会注意到对各种API端点发出了一些XHR HTTP GET请求,这些请求的响应是JSON并包含您要查找的信息。您所要做的就是模仿这些请求-无需BeautifulSoup或Selenium:</p>
<pre><code>def get_ship_position(ship_id):
import requests
url = "https://www.marinetraffic.com/vesselDetails/latestPosition/shipid:{}".format(ship_id)
headers = {
"accept": "application/json",
"accept-encoding": "gzip, deflate",
"user-agent": "Mozilla/5.0",
"x-requested-with": "XMLHttpRequest"
}
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
def main():
from datetime import datetime
data = get_ship_position("371441")
ts = datetime.utcfromtimestamp(data["lastPos"])
print("Last known position: {} / {} @ {}".format(data["lat"], data["lon"], ts))
return 0
if __name__ == "__main__":
import sys
sys.exit(main())
</code></pre>
<p>输出:</p>
<pre><code>Last known position: -1.53057 / -48.77838 @ 2021-08-04 10:33:33
>>>
</code></pre>