【发布时间】:2021-01-31 16:57:01
【问题描述】:
我正在尝试使用来自网页的适当参数来填充发出 post http 请求的 json 响应。当我运行脚本时,我看到脚本卡住并且没有带来任何结果。它也不会抛出任何错误。这是site link。在点击Get times & tickets 按钮之前,我从该站点的this form 的三个下拉列表中选择了三个选项。
我试过了:
import requests
from bs4 import BeautifulSoup
url = 'https://www.thetrainline.com/'
link = 'https://www.thetrainline.com/api/journey-search/'
payload = {"passengers":[{"dateOfBirth":"1991-01-31"}],"isEurope":False,"cards":[],"transitDefinitions":[{"direction":"outward","origin":"1f06fc66ccd7ea92ae4b0a550e4ddfd1","destination":"7c25e933fd14386745a7f49423969308","journeyDate":{"type":"departAfter","time":"2021-02-11T22:45:00"}}],"type":"single","maximumJourneys":4,"includeRealtime":True,"applyFareDiscounts":True}
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
s.headers['content-type'] = 'application/json'
s.headers['accept'] = 'application/json'
r = s.post(link,json=payload)
print(r.status_code)
print(r.json())
我怎样才能从该站点获取带有参数的发布请求的 json 响应?
【问题讨论】:
-
您可以通过将根日志级别设置为调试来查看完整的请求调试日志。我们很难在没有看到流量的情况下帮助回答这样的问题。另一种方法是使用 Fiddler 之类的工具来查看您的流量。
标签: python json python-3.x web-scraping python-requests