在查看来源下的评论时,根据我使用的浏览器,我会得到不同的结果。
Chrome浏览器:
Internet Explorer:
在Internet Explorer或Chrome上使用带请求的Python和User-Agent可以获得与Internet Explorer相同的结果:
>>> parse_google('https://play.google.com/store/movies/details?id=s8dGvpxGuCs')
ds: 11 ; data: [[[1, None, False], [[None, [[600], None, [604800]]]]]]
>>> parse_google('https://play.google.com/store/movies/details?id=s8dGvpxGuCs')
ds: 10 ; data: [[None, None, None, None, [False], [[None, [[600], None, [604800]]]], [[u'4.7', 4.67492], [None, [u'41', 41], [u'19', 19], [u'36', 36], [u'114', 114], [u'1,042', 1042]], [u'1,252', 1252], [u'505', 505]]], [3, 1, 3, 10, 100]]
您可以使用以下代码(Chrome用户代理)自行验证:
>>> import json
>>> import requests
>>> response = requests.get('https://play.google.com/store/movies/details?id=s8dGvpxGuCs', headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'})
>>> s = json.loads(response.content.split('AF_initDataCallback({key: \'ds:11\'')[1].split('data:function(){return ')[1].split('}});')[0])
>>> print s
[[[1, None, False], [[None, [[600], None, [604800]]]]]]
P.S。
我也注意到了Microsoft的商店,Chrome浏览器显示div标签,Internet Explorer显示分区标签。
答案 0 :(得分:-1)
Oldskool Internet Explorer不兼容某些现代HTML5精美功能,例如<section>
标签。
结果,如果站点希望检测到旧版浏览器,则可能会生成旧样式的HTML以及一些JS polyfills,从而支持旧版浏览器。