Initial commit
commit
1811276fbd
@ -0,0 +1,38 @@
|
||||
#!/usr/bin/python
|
||||
import webshotslib, time
|
||||
|
||||
to_parse = []
|
||||
to_parse_count = 0
|
||||
users = []
|
||||
users_count = 0
|
||||
users_last_save = 0
|
||||
|
||||
print "Starting...",
|
||||
|
||||
for category in webshotslib.get_category_listings("http://community.webshots.com/"):
|
||||
to_parse.append(category)
|
||||
to_parse_count += 1
|
||||
print "\rTotal pages to be parsed: %d" % to_parse_count,
|
||||
|
||||
for listing_page in webshotslib.get_user_listings(category):
|
||||
to_parse.append(listing_page)
|
||||
to_parse_count += 1
|
||||
print "\rTotal pages to be parsed: %d" % to_parse_count,
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
print ""
|
||||
|
||||
for listing_page in to_parse:
|
||||
for user in webshotslib.get_users(listing_page):
|
||||
if user not in users:
|
||||
users.append(user)
|
||||
users_count += 1
|
||||
print "\rUsers found: %d" % users_count,
|
||||
|
||||
if users_count % 1000 < 100 and users_last_save != users_count:
|
||||
userfile = open("users.txt", "w")
|
||||
userfile.write("\n".join(users))
|
||||
userfile.close()
|
||||
users_last_save = users_count
|
||||
time.sleep(0.5)
|
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import urllib, re
|
||||
|
||||
def get_category_listings(url):
|
||||
contents = urllib.urlopen(url).read()
|
||||
matches = re.findall('<a href="(http:\/\/www\.webshots\.com\/members\/[^/]+\/[^/]+\.html)">top members</a>', contents)
|
||||
return matches
|
||||
|
||||
def get_user_listings(url):
|
||||
contents = urllib.urlopen(url).read()
|
||||
matches = re.findall('<a href="(http:\/\/www\.webshots\.com\/members\/[^/]+\/[^/]+\.html)">[0-9]+-[0-9]+</a>', contents)
|
||||
|
||||
if len(matches) > 0:
|
||||
matches.pop(0)
|
||||
|
||||
return matches
|
||||
|
||||
def get_users(url):
|
||||
contents = urllib.urlopen(url).read()
|
||||
matches = re.findall('http:\/\/community\.webshots\.com\/user\/([^/\'"]+)', contents)
|
||||
return [value for value in matches if value != "my"]
|
Loading…
Reference in New Issue