-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstagram.py
More file actions
executable file
·102 lines (88 loc) · 2.18 KB
/
instagram.py
File metadata and controls
executable file
·102 lines (88 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/python
import urllib
import urlparse
from bs4 import BeautifulSoup as BS
import mechanize
import re
import hashlib
def searchPic(name):
img_list = getPic(name)
if len(img_list) > 0:
for img in img_list:
savePic(name,img)
def getPic(name):
img_urls = []
try:
url = "http://instagram.com/" + name
browser = mechanize.Browser()
browser.set_handle_robots(False)
browser.addheaders = [('user-agent','Mozilla')];
#,('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')]
htmlfile = browser.open(url)
#htmlfile = urllib.urlopen(url)
htmltext = str(BS(htmlfile))
dataline = ''
for line in htmltext.split("\n"):
if line.find('low_resolution') > 0:
dataline = line
break
start = "low_resolution\":{\"url\":\""
end = "\","
regex = start + "(?!.*" + start + ").*?" + end
pattern = re.compile(regex)
count = 0
for image in dataline.split("\"images\""):
if count > 0:
url = re.findall(pattern,image)
img_urls.append(url[0].replace(start,"").replace(end,"").replace("\/","/"))
count += 1
start = ":\""
end = "\","
regex = start + end
pattern = re.compile(regex)
count = 0
for username in dataline.split("\"username\""):
if count > 0:
user = username.split("\"")[1]
if user != name:
add2queue(user)
count += 1
except:
print 'error'
return img_urls
def savePic(name,img):
hs = hashlib.sha224(img).hexdigest()
ext = img.split(".")[-1]
if ext != 'mp4':
dest = 'pics/' + hs + '_' + name + '.' + ext
try:
urllib.urlretrieve(img,dest)
except:
print 'save failed'
def add2queue(user):
qfile = open('queue.txt','r+')
users = qfile.readlines()
testuser = user + '\n'
if testuser not in users:
qfile.write(user + '\n')
qfile.close()
def main():
user = 'liljonnystyle'
qfile = open('queue.txt','w')
qfile.write(user + '\n')
qfile.close()
usercount = 1
searchPic(user)
qfile = open('queue.txt','r')
users = qfile.readlines()
qfile.close()
while usercount <= len(users)-1:
if usercount > 1000: break
user = users[usercount][0:-1]
searchPic(user)
usercount += 1
qfile = open('queue.txt','r')
users = qfile.readlines()
qfile.close()
if __name__ == '__main__':
main()