Skip to content

Commit faff6bc

Browse files
author
RolandColored
committed
more headers and cookie management to better fake browsers
1 parent 789a371 commit faff6bc

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

got/manager/TweetManager.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import urllib,urllib2,json,re,datetime,sys
1+
import urllib,urllib2,json,re,datetime,sys,cookielib
22
from .. import models
33
from pyquery import PyQuery
44

@@ -13,11 +13,12 @@ def getTweets(tweetCriteria, receiveBuffer = None, bufferLength = 100):
1313

1414
results = []
1515
resultsAux = []
16-
16+
cookieJar = cookielib.CookieJar()
17+
1718
active = True
18-
19+
1920
while active:
20-
json = TweetManager.getJsonReponse(tweetCriteria, refreshCursor)
21+
json = TweetManager.getJsonReponse(tweetCriteria, refreshCursor, cookieJar)
2122
if len(json['items_html'].strip()) == 0:
2223
break
2324

@@ -73,7 +74,7 @@ def getTweets(tweetCriteria, receiveBuffer = None, bufferLength = 100):
7374
return results
7475

7576
@staticmethod
76-
def getJsonReponse(tweetCriteria, refreshCursor):
77+
def getJsonReponse(tweetCriteria, refreshCursor, cookieJar):
7778
url = "https://twitter.com/i/search/timeline?f=realtime&q=%s&src=typd&max_position=%s"
7879

7980
urlGetData = ''
@@ -88,15 +89,25 @@ def getJsonReponse(tweetCriteria, refreshCursor):
8889

8990
if hasattr(tweetCriteria, 'querySearch'):
9091
urlGetData += ' ' + tweetCriteria.querySearch
91-
92-
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}
93-
92+
9493
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+
98108
try:
99-
jsonResponse = urllib2.urlopen(req).read()
109+
response = opener.open(url)
110+
jsonResponse = response.read()
100111
except:
101112
print "Twitter weird response. Try to see on browser: https://twitter.com/search?q=%s&src=typd" % urllib.quote(urlGetData)
102113
sys.exit()

0 commit comments

Comments
 (0)