python从查询字符串参数获取请求

2024-10-01 07:14:25 发布

您现在位置:Python中文网/ 问答频道 /正文

Im使用get请求从站点获取数据

捕获的请求测试详细信息:

查询字符串参数

s: vrnf8

下面是我的代码。但我得到404找不到状态码

import requests

url = "https://www.fleetmon.com/search/?s=vrnf8"

pload = {"s":"vrnf8"}

resp = requests.get(url, params=pload)

print(resp.text)
print(resp.status_code)

请帮我做这个

请求捕获文件:https://filebin.net/ilx668e5yrdmbu7p

答复必须是:

[[{"lastreport_class": "position-age-live", "course": 213, "callsign": "VRNF8", "lastreport_verbose": "2020-07-17 12:28 UTC", "speed": 15.6, "destination": "SGSIN PEBGA", "vessel_url": "/vessels/seaspan-amazon_9630391_8896228/", "imo": "9630391", "location": "South Kuroshio, JP", "latitude": 28.732660, "vesselid": "8896228", "mmsi": "477390400", "lastreport_timestamp": 1594985298, "lastreport_short": "21 min", "name_clean": "SEASPAN AMAZON", "vessel_type": "Container ship", "master_image_id": 2278121, "flag_id": "HK", "icon": "cargo", "is_moving": true, "name": "SEASPAN AMAZON", "longitude": 28.732660, "length": "337", "flag_name": "Hong Kong SAR of China"}], 1, [], 0]

Tags: namehttpsidurlamazongetrequestsresp
2条回答
import requests

url = "https://www.fleetmon.com/search/?s=vrnf8"

pload = {"s":"vrnf8"}

resp = requests.get(url, params=pload)

print(resp.text)
print(resp.status_code)

注意:您键入的url不存在

404 page not found

Correct Code

import requests

url = "https://www.fleetmon.com/search/"

pload = {"s":"vrnf8"}

resp = requests.get(url, params=pload)

print(resp.text)
print(resp.status_code)

但是现在你也会得到一个错误

解释

let's understand what's happening in your code

import requests

url = "https://www.fleetmon.com/search/?s=vrnf8"

pload = {"s":"vrnf8"}

resp = requests.get(url, params=pload)

'''
resp is equivalent to  request.get("https://www.fleetmon.com/search/?s=vrnf8/?s=vrnf8")
when we make get request to url, it appends /?query=value to it's requested url
and this url doesn't exist so you will get 404
'''

print(resp.text)
print(resp.status_code)

code that I sent


```python
import requests

url = "https://www.fleetmon.com/search"

pload = {"s":"vrnf8"}

resp = requests.get(url, params=pload)

'''
resp is equivalent to  request.get("https://www.fleetmon.com/search/?s=vrnf8")
when we make get request to url, it again appends /?query=value to it's requested url
and even this url also doesn't exist so you will again get 404
'''

print(resp.text)
print(resp.status_code)

注意:您可以通过在谷歌搜索栏中键入url来检查url是否存在

请尝试以下代码:

import requests

url = "https://www.fleetmon.com/search/?s=vrnf8"

headers = {
    'X-Requested-With': 'XMLHttpRequest'
}

response = requests.get(url, headers=headers)

print(response.json())

结果:

[[{'lastreport_class': 'position-age-live', 'course': 212, 'callsign': 'VRNF8', 'lastreport_verbose': '2020-07-17 13:22 UTC', 'speed': 15.9, 'destination': 'SGSIN PEBGA', 'vessel_url': '/vessels/seaspan-amazon_9630391_8896228/', 'imo': '9630391', 'location': 'South Kuroshio, JP', 'latitude': 28.540143, 'vesselid': '8896228', 'mmsi': '477390400', 'lastreport_timestamp': 1594988550, 'lastreport_short': '1 min', 'name_clean': 'SEASPAN AMAZON', 'vessel_type': 'Container ship', 'master_image_id': 2278121, 'flag_id': 'HK', 'icon': 'cargo', 'is_moving': True, 'name': 'SEASPAN AMAZON', 'longitude': 28.540143, 'length': '337', 'flag_name': 'Hong Kong SAR of China'}], 1, [], 0]

相关问题 更多 >