2016-11-23 7 views
0

Я пытаюсь отправить запросы json, чтобы очистить бесконечный элемент прокрутки в this link. Хотя я знаю, что некоторые параметры не обязательно, но, конечно, я определяю точно такие же параметры которые отправляются на сервер: мои параметры и кодОтправка различных запросов json, но получение аналогичных результатов в Python

import requests 
import json 
parameters1 = {'ticker':'XOM', 'countryCode':'US', 
      'dateTime':'12%3A38+p.m.+Oct.+24%2C+2016', 'docId':'', 
      'docType':'806','sequence':'e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2', 
      'messageNumber':'8541','count':'10', 
      'channelName':'%2Fnews%2Flatest%2Fcompany%2Fus%2Fxom', 'topic':'', 
      '_':'1479888927416' } 



parameters2 = {'ticker':'XOM', 'countryCode':'US', 
      'dateTime':'12%3A38+p.m.+Oct.+24%2C+2016','docId':'', 
      'docType':'806' ,'sequence':'e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2', 
      'messageNumber':'8525','count':'10', 
      'channelName':'%2Fnews%2Flatest%2Fcompany%2Fus%2Fxom', 'topic':'', 
      '_':'1479888927417' } 


firstUrl = "http://www.marketwatch.com/news/headline/getheadlines" 
html1 = requests.get(firstUrl, params = parameters1) 
result1 = (json.loads(html1.text)) 

html2 = requests.get(firstUrl, params = parameters2) 
result2 = (json.loads(html2.text)) 

и проверить, если они такие же:

if(result2 == result1): 
    print(True) 

ответ всегда правда. Я изменил многие параметры, и это не сработало. Что не так с моим кодом или prodecure, с которыми я сталкиваюсь?

ответ

1

Ваша проблема заключается в том, что вы отправляете JSON, но используете закодированные строки. Вместо %2F вы должны использовать /, вместо + пробел, а не %3A a : и так далее. Вы можете декодировать свою строку, например, on this site.

import requests 
import json 
parameters1 = {'ticker':'XOM', 'countryCode':'US', 
      'dateTime':'12:38 p.m. Oct., 2016', 'docId':'', 
      'docType':'806','sequence':'e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2', 
      'messageNumber':'8541','count':'10', 
      'channelName':'/news/latest/company/us/xom', 'topic':'', 
      '_':'1479888927416' } 

parameters2 = {'ticker':'XOM', 'countryCode':'US', 
      'dateTime':'12:38 p.m. Oct., 2016','docId':'', 
      'docType':'806' ,'sequence':'e5a00f51-8821-4fbc-8ac6-e5f64b5eb0f2', 
      'messageNumber':'8525','count':'10', 
      'channelName':'/news/latest/company/us/xom', 'topic':'', 
      '_':'1479888927417' }; 

firstUrl = "http://www.marketwatch.com/news/headline/getheadlines" 
html1 = requests.get(firstUrl, params = parameters1) 
result1 = (json.loads(html1.text)) 


html2 = requests.get(firstUrl, params = parameters2); 
result2 = (json.loads(html2.text)) 

Тогда result1==result2 будет False