find_exp_spm
Tilbage
Hent filen
Licens GPL
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
#!/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)