User:Eleanorg/1.2/Forbidden Pixels/writing string to text file: Difference between revisions
(Created page with "This script recieves a url from a form, scrapes it, extracts relevant bits with regex, and writes relevant bits to a text file. <source lang="python"> #!/usr/bin/python #-*- cod...") |
No edit summary |
||
Line 37: | Line 37: | ||
<body>""" | <body>""" | ||
print "Content-Type: text/html" | |||
print | |||
print htmlHeader | |||
pat = r"(Pixel position:(\d\d\d).(\d\d\d)\;\ Color:(rgba\(.*\)))" | pat = r"(Pixel position:(\d\d\d).(\d\d\d)\;\ Color:(rgba\(.*\)))" | ||
Line 46: | Line 48: | ||
f = open("data/data.txt", 'a') # opens text file in apend mode | f = open("data/data.txt", 'a') # opens text file in apend mode | ||
for m in re.finditer(pat, text): # for each match in text | for m in re.finditer(pat, text): # for each match in text | ||
string = m.group(0) # m.group() lets you access data within the match object | string = m.group(0) # m.group() lets you access data within the match object | ||
xPos = m.group(1) | xPos = m.group(1) | ||
Line 52: | Line 53: | ||
color = m.group(3) | color = m.group(3) | ||
f.write(xPos + '\n') # writes xPos to the text file plus newline | f.write(xPos + '\n') # writes xPos to the text file plus newline | ||
print "thanks, url submitted. The pixel you are hosting has been added." | |||
print " | |||
f.close() | f.close() | ||
print """ | |||
</body> | |||
</html>""" | |||
</source> | </source> |
Latest revision as of 18:39, 28 March 2012
This script recieves a url from a form, scrapes it, extracts relevant bits with regex, and writes relevant bits to a text file.
#!/usr/bin/python
#-*- coding:utf-8 -*-
import cgi, re, urllib2
import cgitb; cgitb.enable()
# scrapes pixel data string from a URL submitted by user in an html form; assigns the result to appropriate variables.
#------------- get URL from input form -------------------#
form = cgi.FieldStorage() # Grabs whatever input comes from form
url = form.getvalue("url", "http://ox4.org/~nor/trials/hostedString.html") # assigns form's input to var 'url'. url on the right is a default value that will be printed for testing if nothing is recieved from the form
#------------- scrape webpage----------------------------#
text = urllib2.urlopen(url).read() # reads page at the specified URL
#--------- extract the string with regex; write it to text file------------#
# string is in format:
# Pixel position:500.001; Color:rgba(222,221,217,1)
htmlHeader = """<!DOCTYPE html>
<html>
<head>
<title>A form talking to a python script</title>
<style type="text/css">
</style>
</head>
<body>"""
print "Content-Type: text/html"
print
print htmlHeader
pat = r"(Pixel position:(\d\d\d).(\d\d\d)\;\ Color:(rgba\(.*\)))"
if not re.search(pat, text): # if pattern 'pat' isn't found within text
print "nothing found"
else:
f = open("data/data.txt", 'a') # opens text file in apend mode
for m in re.finditer(pat, text): # for each match in text
string = m.group(0) # m.group() lets you access data within the match object
xPos = m.group(1)
yPos = m.group(2)
color = m.group(3)
f.write(xPos + '\n') # writes xPos to the text file plus newline
print "thanks, url submitted. The pixel you are hosting has been added."
f.close()
print """
</body>
</html>"""