我正在尝试从
http://www.pogdesign.co.uk/cat/
.
我想获取每个节目的频道和播出时间,但问题是默认情况下它们不会出现。只有在手动配置设置并保存后,才会出现每个节目的频道和播出时间。
据我在检查 Chrome 开发者工具中的“网络”部分后了解,在我单击“保存设置”后实际发生的情况是正在发送一个 POST 请求,其中包含相关的数据参数(例如's_networks':'on'
等),然后是一个 GET正在发送请求,以检索带有频道和播放时间的 html 文件。
我尝试使用 python 的requests
包和mechanicalsoup
包来模拟这个过程(POST 请求,然后是 GET 请求)。
requests:
s = requests.Session()
s.post('http://www.pogdesign.co.uk/cat/', data = {'s_networks':'on'})
s.get('http://www.pogdesign.co.uk/cat/')
mechanicalsoup:
mcs = mechanicalsoup.Browser()
res_post = mcs.post('http://www.pogdesign.co.uk/cat/', data {'s_networks':'on'})
res_get = mcs.get('http://www.pogdesign.co.uk/cat/')
然而,我收到的回复不包含频道和播出时间数据。
我注意到的唯一区别是浏览器的 POST 请求302
返回的状态码是 ,而我的 python 请求返回的状态码是200
.