-
Notifications
You must be signed in to change notification settings - Fork 6
/
frettir-fra-almannavornum.py
81 lines (58 loc) · 2.5 KB
/
frettir-fra-almannavornum.py
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
import scraperwiki,re
from BeautifulSoup import BeautifulSoup, SoupStrainer
#Allt er í flokknum Fréttir - óþarfi að leita að því - skilgeinum það þá hér
flokkur = 'Fréttir'
#Array til að geyma fréttadata
frettir = {}
def scrape_safn(url):
html = scraperwiki.scrape(url)
soup = BeautifulSoup(html)
soup.prettify()
# Forum i gegnum alla tengla sem hafa class=headnews
frettir = soup.findAll('a', { "class" : "headnews" })
for a in frettir:
# Baeta vid leni
url = 'http://logreglan.is/displayer.asp' + a['href']
# Saekjum frett med scrape_frett
scrape_frett(url)
def scrape_frett(url):
#Athugum hvort við höfum sótt fréttina áður með því að checka á því hvort slóðin hefur metadata
frett_sed_adur = scraperwiki.metadata.get(url)
if frett_sed_adur is not None:
#Ef já - sleppum því að sækja og tilkynnum það
print "Sleppum frett (sed adur): " + url
return
else:
#Ekki séð frétt áður - vinnum úr henni
print "Saekjum frett: " + url
html = scraperwiki.scrape(url)
soup = BeautifulSoup(html)
soup.prettify()
#Finnum töfluna með efninu - á undan henni er comment "text area" - sem við notum til að staðsetja okkur
efni = soup.find(text=re.compile("text area")).findNext('table').table
#Finnum dagsetninguna - það er næsta tr
date = efni.tr.text
#Setjum dagsetningu og category í array-inn
frettir['dagsetning'] = date
frettir['flokkur'] = flokkur
#Finnum fyrirsögn - næsta tr
fyrirsogn=efni.tr.findNextSibling('tr')
#Setjum fyrirsögn í array-inn
frettir['fyrirsogn'] = fyrirsogn.text
#Finnum meginmál - næsta tr
content=fyrirsogn.findNextSibling('tr')
#Setjum meginmál í array-inn
frettir['meginmal'] = content.text
#Setjum slóðina í array-inn
frettir['slod'] = url
#vistum efnið
print "vistum frett: " + url
scraperwiki.datastore.save(["slod"], frettir)
#vistum slodina sem metadata svo við vitum að við séum búin með hana
scraperwiki.metadata.save(url, '1')
#print frettir
#Og svo höldum við áfram
# Byrjunarsida
start_url = 'http://logreglan.is/displayer.asp?cat_id=1040'
# Setjum spiderinn af stad a rettum stad
scrape_safn(start_url)