1
- import urllib ,urllib2 ,json ,re ,datetime ,sys
1
+ import urllib ,urllib2 ,json ,re ,datetime ,sys , cookielib
2
2
from .. import models
3
3
from pyquery import PyQuery
4
4
@@ -13,11 +13,12 @@ def getTweets(tweetCriteria, receiveBuffer = None, bufferLength = 100):
13
13
14
14
results = []
15
15
resultsAux = []
16
-
16
+ cookieJar = cookielib .CookieJar ()
17
+
17
18
active = True
18
-
19
+
19
20
while active :
20
- json = TweetManager .getJsonReponse (tweetCriteria , refreshCursor )
21
+ json = TweetManager .getJsonReponse (tweetCriteria , refreshCursor , cookieJar )
21
22
if len (json ['items_html' ].strip ()) == 0 :
22
23
break
23
24
@@ -73,7 +74,7 @@ def getTweets(tweetCriteria, receiveBuffer = None, bufferLength = 100):
73
74
return results
74
75
75
76
@staticmethod
76
- def getJsonReponse (tweetCriteria , refreshCursor ):
77
+ def getJsonReponse (tweetCriteria , refreshCursor , cookieJar ):
77
78
url = "https://twitter.com/i/search/timeline?f=realtime&q=%s&src=typd&max_position=%s"
78
79
79
80
urlGetData = ''
@@ -88,15 +89,25 @@ def getJsonReponse(tweetCriteria, refreshCursor):
88
89
89
90
if hasattr (tweetCriteria , 'querySearch' ):
90
91
urlGetData += ' ' + tweetCriteria .querySearch
91
-
92
- headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)' }
93
-
92
+
94
93
url = url % (urllib .quote (urlGetData ), refreshCursor )
95
-
96
- req = urllib2 .Request (url , headers = headers )
97
-
94
+
95
+ headers = [
96
+ ('Host' , "twitter.com" ),
97
+ ('User-Agent' , "Mozilla/5.0 (Windows NT 6.1; Win64; x64)" ),
98
+ ('Accept' , "application/json, text/javascript, */*; q=0.01" ),
99
+ ('Accept-Language' , "de,en-US;q=0.7,en;q=0.3" ),
100
+ ('X-Requested-With' , "XMLHttpRequest" ),
101
+ ('Referer' , url ),
102
+ ('Connection' , "keep-alive" )
103
+ ]
104
+
105
+ opener = urllib2 .build_opener (urllib2 .HTTPCookieProcessor (cookieJar ))
106
+ opener .addheaders = headers
107
+
98
108
try :
99
- jsonResponse = urllib2 .urlopen (req ).read ()
109
+ response = opener .open (url )
110
+ jsonResponse = response .read ()
100
111
except :
101
112
print "Twitter weird response. Try to see on browser: https://twitter.com/search?q=%s&src=typd" % urllib .quote (urlGetData )
102
113
sys .exit ()
0 commit comments