【发布时间】:2014-02-08 08:54:12
【问题描述】:
我的问题有点类似于this question,因为我正在尝试以编程方式下载 Chrome 扩展程序。我最初的想法与链接的问题相同,我正在考虑编写一个用于爬行的程序(使用 Scrapy)。但是,我注意到页面是动态的,爬虫只下载 HTML 框架,并且浏览器向https://chrome.google.com/webstore/ajax/item 发出请求以下载用于扩展的 JSON(其中还包含扩展 ID)。因此,我尝试使用 Python 的 Requests 库创建一个 POST 请求。我尝试使用浏览器发送的值(有效负载和 cookie)发出请求(如下):
>>>url = "https://chrome.google.com/webstore/ajax/item"
>>>cookies = dict(NID='67=R4qURXDfck7w88_e3h9K7nlH3p5P0DVYSsv6H48ItU4ySyEteOzBmCJeOeyIGpufjsPq8nXq3g6X9spvFtUnBi41nFFkL9hKCOkGNNya6YkdfMrbP6gbTcCxwL2SXlyq', __utma='73091649.1313886221.1389991622.1390001718.1390050575.3', __utmb='73091649.17.9.1390051810097', __utmc='73091649', __utmz='73091649.1389991622.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)')
>>>payload = {'hl': 'en-US', 'gl': 'US', 'pv': '138978106', 'mce': 'c3d,ncr,ctm,ac,hot,emc,apl,grt,spa,spb,shr','count': '0','token': '151@461735', 'category': 'extensions', 'sortBy': '0', 'container': 'CHROME', '_reqid': '5129379','rt': 'j'}
>>>r = requests.post(url, params=payload, cookies=cookies)
但是,当我收到发送此请求时,我会收到响应:
>>> r.text
u')]}\'\n\n[[["er",,,,["xhrerrorresponse",1]\n,400,"xhrerrorresponse",,,9]\n,["e",2,,,102]\n]]'
我不知道是什么导致了这个 XMLHttpRequest 错误。谁能告诉我如何解决这个问题?或者以其他方式下载 Chrome 扩展程序的 ID?
【问题讨论】:
标签: python ajax google-chrome google-chrome-extension python-requests