find_exp_spm.py
by
admin
—
last modified
2008-06-29 13:20
Udskriv spørgsmål - gem som pdf Hej Er det muligt at få vist alle ens spørgsmål og svar efter kategori, og udskrive dem på en printer, se dem så man kan gemme teksten eller få dem lavet til en pdf? På den måde kunne man gå tilbage til dem når man var offline også Hvis ik det er muligt, så er det et forslag
Size 3.8 kB - File type text/python-sourceFile contents
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
""" <kategory> <login> [<output>]
kategory: from www.eksperten
output : file to placed the result. Defaults to <kategory>.data
"""
import urllib
import sys
def read_kategory(kategory="Sikkerhed", login="", output=""):
working = ".oOo"
loginStr = "bruger.phtml?navn=%(login)s" % vars()
if output:
out = open(output, "w")
else:
out = open(kategory+".data", "w")
url = 'http://www.eksperten.dk/spm/%(kategory)s/' % vars()
i=-1
while True:
html = urllib.urlopen( url ).read()
position = 0
endpostion = len(html)
while True:
try:
position = html.index('class="listbox"',position)+1
endposition = html.index('class="listbox"',position)+1
except:
break
hrefpos = position
# print position
while True:
hrefpos = html.find( "href=" , hrefpos, endposition )+1
if hrefpos == 0:
break
startpos = html.find('"',hrefpos)+1
endpos = html.find('"', startpos)
href = "http://www.eksperten.dk%s/" % html[startpos:endpos]
# print href
question = urllib.urlopen(href).read()
i+=1
print working[i % len(working)],
sys.stdout.flush()
if question.find(loginStr) == -1:
continue
qStr = '<meta name="description" content="'
qstart = question.index(qStr) + len(qStr)
qend = question.find('/>',qstart)
# Question
out.write(question[qstart:qend]+"\n")
p_start = qend
while True:
nameStr = 'link_black_spm"'
stop = len(nameStr)
p_start = question.find( nameStr, p_start ) + len(nameStr) + 1
p_end = question.find( "<", p_start )
if p_start == stop:
break
# besvaret af
out.write("Navn " + question[p_start:p_end] + "\n")
s_answerStr = 'spm-respons">'
try:
s_answer = question.index(s_answerStr, p_start) + len(s_answerStr)
except:
break
p_start = question.find("</td>",s_answer )
if p_start == -1:
break
# svar
out.write("Svar " + question[s_answer:p_start] + "\n")
endpos = html.find(">>><")
startpos = html.find('href="/spm/%(kategory)s' % vars(), 0, endpos)
startx = html.find('"' ,startpos) + 1
endx = html.find('"',startx )
url = 'http://www.eksperten.dk' + html[startx:endx]
Kategorier = [
"Databaser",
"Design",
"Diverse",
"E-losninger",
"Eksperten",
"Generelt-IT",
"Hardware",
"Internet",
"Job-opgaver",
"Netvaerk",
"Opgaver",
"PDA",
"Programmer",
"Programmering",
"Sikkerhed",
"Styresystemer",
]
if __name__ == "__main__":
if len(sys.argv ) == 1:
print "Usage:", sys.argv[0], __doc__ , "\nKategorier er:\n\t", "\n\t".join(Kategorier)
sys.exit(0)
kategory = sys.argv[1]
if len(sys.argv) > 2:
login=sys.argv[2]
if len(sys.argv) > 3:
output=sys.argv[3]
else:
output=kategory + ".data"
if kategory not in Kategorier:
print "Wrong kategory\nUsage:", sys.argv[0], __doc__ , "\nKategorier er:\n\t", "\n\t".join(Kategorier)
sys.exit(0)
read_kategory(kategory=kategory, output=output, login=login)
Click here to get the file