[LÖST] Spara och sortera information från en webbsida?
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
[LÖST] Spara och sortera information från en webbsida?
Hej!
Jag har ett problem som jag försöker lösa. Jag har kommit på en potentiell lösning, men jag vet för det första inte om man FÅR göra så här.
Till att börja med ska jag förklara problematiken - som förvisso är ganska simpel. Jag vill kunna bläddra i Filmbutiken.se:s sortiment, men deras webbsida tillåter inte det. Sökfunktionen är ytterst bristfällig (testa själva). Jag har mailat folket på Filmbutiken.se och frågat om det, men fick ingen lösning i deras svar.
För att lösa detta funderar jag på hur jag kan hämta hem informationen på eget vis, med några rader kod (helst Bash eller Python, som jag har lite erfarenhet av). Jag kan egentligen ingenting om det här men jag har kommit fram till att man borde kunna få fram hela registret om man bara ändrar id-numret i slutet av url:en http://www.filmbutiken.se/15/page.asp?p ... oduct_id=8 . Jag vet bara inte hur jag enkelt kan spara informationen och ordna den på ett överskådligt sätt när den väl når min dator.
Tankar och idéer?
Jag har ett problem som jag försöker lösa. Jag har kommit på en potentiell lösning, men jag vet för det första inte om man FÅR göra så här.
Till att börja med ska jag förklara problematiken - som förvisso är ganska simpel. Jag vill kunna bläddra i Filmbutiken.se:s sortiment, men deras webbsida tillåter inte det. Sökfunktionen är ytterst bristfällig (testa själva). Jag har mailat folket på Filmbutiken.se och frågat om det, men fick ingen lösning i deras svar.
För att lösa detta funderar jag på hur jag kan hämta hem informationen på eget vis, med några rader kod (helst Bash eller Python, som jag har lite erfarenhet av). Jag kan egentligen ingenting om det här men jag har kommit fram till att man borde kunna få fram hela registret om man bara ändrar id-numret i slutet av url:en http://www.filmbutiken.se/15/page.asp?p ... oduct_id=8 . Jag vet bara inte hur jag enkelt kan spara informationen och ordna den på ett överskådligt sätt när den väl når min dator.
Tankar och idéer?
Senast redigerad av 1 Yuh Learn, redigerad totalt 23 gånger.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Spara och sortera information från en webbsida?
Det har jag ingen aning om. Jag kan tänka mig att det åtminstone är ok så länge du bara använder den insamlade datan för eget personligt bruk. Men jag vet som sagt egentligen inte hur det faktiskt ligger till.Yuh Learn skrev:Jag har ett problem som jag försöker lösa. Jag har kommit på en potentiell lösning, men jag vet för det första inte om man FÅR göra så här.
Du vill nog helst få in informationen i en databas.Yuh Learn skrev:Jag vet bara inte hur jag enkelt kan spara informationen och ordna den på ett överskådligt sätt när den väl når min dator.
-
- Inlägg: 309
- Blev medlem: 09 dec 2008, 21:34
- OS: Xubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Trelleborg
Re: Spara och sortera information från en webbsida?
Yuh Learn skrev: För att lösa detta funderar jag på hur jag kan hämta hem informationen på eget vis, med några rader kod (helst Bash eller Python, som jag har lite erfarenhet av). Jag kan egentligen ingenting om det här men jag har kommit fram till att man borde kunna få fram hela registret om man bara ändrar id-numret i slutet av url:en http://www.filmbutiken.se/15/page.asp?p ... oduct_id=8 . Jag vet bara inte hur jag enkelt kan spara informationen och ordna den på ett överskådligt sätt när den väl når min dator.
Om du gillar python och dessutom behöver en databas lite kvickt, så har python sqlite inbyggtKonservburk skrev:Du vill nog helst få in informationen i en databas.Yuh Learn skrev:Jag vet bara inte hur jag enkelt kan spara informationen och ordna den på ett överskådligt sätt när den väl når min dator.
* http://docs.python.org/library/sqlite3.html
1. Ta hem
2. tolka
3. spara undan
4. och sedan kan du söka i databasen...
/Johan
-
- Inlägg: 309
- Blev medlem: 09 dec 2008, 21:34
- OS: Xubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Trelleborg
Re: Spara och sortera information från en webbsida?
Beror lite på hur informationen ser ut och hur regelbunden den är...
Men ovan ger dig en mer "normal" textmassa/sida att jobba med... den raden kan ligga i mitten av skriptet.
Och direkt efter så går du över denna data och tolkar och lagrarar undan...
Kod: Markera allt
curl "http://filmbutiken.se/15/page.asp?page_id=6755&type=custom/filmprod&sub_nr=102&product_id=18" | html2text -style pretty
Och direkt efter så går du över denna data och tolkar och lagrarar undan...

- Substrata
- Inlägg: 71
- Blev medlem: 13 apr 2010, 11:01
- OS: Arch Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Spara och sortera information från en webbsida?
Om du använder en vettig html/dom-parser för att plocka ut relevanta delar ur html-sidor kan du förhållandevis enkelt spara de relevanta delarna av sidorna lokalt för enkla uppslag. Har dock inga rekommendationer på området då jag enbart använt Hpricot för Ruby och i övrigt drar mig för *sh-scripting. Annars har wget och säkert andra verktyg funktionalitet för att spegla hela siter med omvandling av länkar så att de fungerar för lokal läsning.
Själv har jag rlslog.net i min RSS-läsare för att få nys om intressanta filmer.
Själv har jag rlslog.net i min RSS-läsare för att få nys om intressanta filmer.
- jens.tinfors
- Inlägg: 49
- Blev medlem: 18 dec 2009, 17:09
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
- Kontakt:
Re: Spara och sortera information från en webbsida?
Du skulle kunna göra något i stil med detta i ruby för att skriva ner varje film till sin egen fil..
Som strata skrev ovan så kan du parse'a sidorna med hpriot för att få ut intressanta delar. Men allt beror såklart på vad du ska ha datat till..
Kod: Markera allt
require 'open-uri'
(1..10).each do |n|
File.open("film_#{n}", 'w') do |f|
f.write(URI.parse("http://filmbutiken.se/15/page.asp?page_id=6755&type=custom/filmprod&sub_nr=102&product_id=#{n}").read)
end
end
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Tack ska ni ha! Avsikten är helt och hållet att använda informationen för privat bruk, på min dator och ingen annanstans, för att få en komplett bild av vad de har i sitt sortiment (+ att det är skoj)!
Det blir Python har jag bestämt mig för nu och jag har börjat leka lite med ett script; testar bland annat att ta hem sidor och läsa ut data. Det lutar åt att spara allt i en databas, som jsiei97 föreslår, men jag vet inte om det är bra att spara allt i html på hårddisken till att börja med. Det rör sig om uppemot 6000 titlar, verkar det som.
Det är på den här nivån jag håller på nu:
Ska forska vidare...
Det blir Python har jag bestämt mig för nu och jag har börjat leka lite med ett script; testar bland annat att ta hem sidor och läsa ut data. Det lutar åt att spara allt i en databas, som jsiei97 föreslår, men jag vet inte om det är bra att spara allt i html på hårddisken till att börja med. Det rör sig om uppemot 6000 titlar, verkar det som.
Det är på den här nivån jag håller på nu:
Kod: Markera allt
import urllib
filename = "test.html"
url = "http://"
x = 1
while x <= 5:
url = "http://filmbutiken.se/15/page.asp?page_id=6755&type=custom/filmprod&sub_nr=102&product_id=" + str(x)
filename = "test" + str(x) + ".html"
filehandle = urllib.urlopen(url)
myFile = open(filename,'w')
print filename + " " + url
for lines in filehandle.readlines():
myFile.write(lines)
x = x + 1
myFile.close()
filehandle.close()
-
- Inlägg: 309
- Blev medlem: 09 dec 2008, 21:34
- OS: Xubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Trelleborg
Re: Spara och sortera information från en webbsida?
Spara inte alla html-sidor.Yuh Learn skrev:Det blir Python har jag bestämt mig för nu och jag har börjat leka lite med ett script; testar bland annat att ta hem sidor och läsa ut data. Det lutar åt att spara allt i en databas, som jsiei97 föreslår, men jag vet inte om det är bra att spara allt i html på hårddisken till att börja med. Det rör sig om uppemot 6000 titlar, verkar det som.
Jobba bara med en sida i sänder (och kasta den när du är klar med den).
Re: Spara och sortera information från en webbsida?
Om du, som jag, är lite skraj för stora mäktiga databaser, så kanske
http://en.wikipedia.org/wiki/Comma-separated_values kan vara något.
Jag vet ingenting om riktiga databaser, men det kan inte bli enklare än att
jobba med CSV, både vad gäller hämtning/parsning av information och själva
skrivandet av densamma.
Jag skulle ha skapat en hash (associativ array) i stil med;
Detta är Perl, en hash innehållandes en hash (eller, hashref, för att vara
korrekt).
Du skriver givetvis inte in all information manuellt, utan detta tar du från
din databas eller CSV.
För övrigt en liten undran; Varför vill du göra detta egentligen? Om det är
filminformation du vill åt så är IMDB betydligt mer reliable.
Edit: Varför blir indenteringen alltid helt trasig på det här forumet?
http://en.wikipedia.org/wiki/Comma-separated_values kan vara något.
Jag vet ingenting om riktiga databaser, men det kan inte bli enklare än att
jobba med CSV, både vad gäller hämtning/parsning av information och själva
skrivandet av densamma.
Jag skulle ha skapat en hash (associativ array) i stil med;
Kod: Markera allt
%movies = (
'En gång i sommar' => {
year => 1992,
origin => 'sweden',
time => '91', # minuter
media => 'vhs',
},
'Gladpack vol 2' => {
year => 2004,
origin => 'sweden',
time => '300', # minuter
media => 'dvd',
},
);
korrekt).
Du skriver givetvis inte in all information manuellt, utan detta tar du från
din databas eller CSV.
För övrigt en liten undran; Varför vill du göra detta egentligen? Om det är
filminformation du vill åt så är IMDB betydligt mer reliable.

Edit: Varför blir indenteringen alltid helt trasig på det här forumet?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Tack för tipset. Jag vill veta vad de har i sin butik helt enkelt! Som sagt så är deras sökfunktion värdelös, man kan inte bläddra bland titlarna och man hittar ingenting.dmz skrev:Om du, som jag, är lite skraj för stora mäktiga databaser, så kanske
http://en.wikipedia.org/wiki/Comma-separated_values kan vara något.
Jag vet ingenting om riktiga databaser, men det kan inte bli enklare än att
jobba med CSV, både vad gäller hämtning/parsning av information och själva
skrivandet av densamma.
Jag skulle ha skapat en hash (associativ array) i stil med;Detta är Perl, en hash innehållandes en hash (eller, hashref, för att varaKod: Markera allt
%movies = ( 'En gång i sommar' => { year => 1992, origin => 'sweden', time => '91', # minuter media => 'vhs', }, 'Gladpack vol 2' => { year => 2004, origin => 'sweden', time => '300', # minuter media => 'dvd', }, );
korrekt).
Du skriver givetvis inte in all information manuellt, utan detta tar du från
din databas eller CSV.
För övrigt en liten undran; Varför vill du göra detta egentligen? Om det är
filminformation du vill åt så är IMDB betydligt mer reliable.
Edit: Varför blir indenteringen alltid helt trasig på det här forumet?
Själva skrivandet till databas borde inte bli något större problem, men jag vet inte hur jag ska lyckas läsa ut rätt information från sida 1 till 6000 (eller vad det nu blir). Html2text (http://www.aaronsw.com/2002/html2text/) ska kunna göra om html till markdown, vilket jag tycker låter som en bra utgångspunkt för att underlätta informationsutläsandet, men jag har inte fått det att funka alls.
Då går alltså texten till det här...
Kod: Markera allt
![][1]
[1]: http://common.name2sell.com/pixels/pixel.gif
![][1]
Dokument Fanny och Alexander - VHS
_VHS_
![][2]
[2]: http://common.name2sell.com/pixels/pixel.gif
![][3]
![][4]
[3]: http://www2.filmbutiken.se/filmimg/40.jpg
[4]: http://common.name2sell.com/pixels/pixel.gif
Produktionsĺr:
1986
Land:
Sverige
Speltid:
1 tim 50 min.
Regissör:
[Ingmar Bergman][5]
[5]:
page.asp?page_id=6755&type=custom/filmprod&sub_nr=101&txtSearch=Ingmar+Bergman
Artikelnr:
40
**85 kr**
st
![][6]
Regissören Ingmar Bergman i aktion när han instruerar sina skĺdespelare i
Fanny och Alexander, den största svenska filmproduktionen genom tiderna. Han
har själv valt ut detta axplock och mycket i filmen kretsar kring hans eget
personliga förhĺllande till rollfiguren Alexander, som framstĺr som hans alter
ego.
[Tillbaka...][7]
[6]: http://common.name2sell.com/pixels/pixel.gif
[7]: javascript:void(null)
Kod: Markera allt
<html>
<head>
<title>Filmbutiken</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<STYLE>
.commontext {color:#333333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; }
.headingtext {color:#333333; font-family:Trebuchet MS, Helvetica, sans-serif; font-size:14pt; }
.imagetext {color:#333333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-style:italic;}
.smalltext {color:#333333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:7pt; }
.bigtext {color:#333333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12pt; font-weight:bold;}
.columntext {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:7pt; }
.adresstext {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:8pt; }
.linktext {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-weight:bold;}
a {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-weight:bold;text-decoration: none;}
a:visited {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-weight:bold;text-decoration: none;}
a:hover {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-weight:bold;text-decoration: none;}
a:active {color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt; font-weight:bold;text-decoration: none;}
</STYLE>
<script type="text/javascript">
function IsImageOk(img) {
if (!img.complete) {
return false;
}
if (typeof img.naturalWidth != 'undefined' && img.naturalWidth == 0) {
return false;
}
return true;
}
function checkImages() {
for (var i = 0; i < document.getElementsByTagName('img').length; i++) {
if (!IsImageOk(document.getElementsByTagName('img')[i])) {
document.images[i].src = '/page/custom/filmprod/images/no_image_large.gif';
}
document.images[i].style.display = '';
}
}
if (window.addEventListener){
window.addEventListener('load', function OnLoad() { checkImages(); }, true);
}
else if (window.attachEvent){
window.attachEvent('onload', function() { checkImages(); });
}
var historyCount;
historyCount = -1;
function checkInt(intValue, allowNullFlag) {
var i, oneChar, inputStr;
if (intValue == null || intValue == "") return allowNullFlag;
inputStr = intValue.toString();
for (i = 0; i < inputStr.length; i++) {
oneChar = inputStr.charAt(i);
if (oneChar < "0" || oneChar > "9")
return false;
}
return true;
}
function checkCartSubmitInput(form_obj) {
if (!checkInt(form_obj.quantity.value, false)) {
alert("Antal produkter måste anges med endast siffror!");
form_obj.quantity.focus();
return false;
}
historyCount = historyCount - 1;
return true;
}
</script>
<style type="text/css">
IMG {
border: 0;
}
</style>
</head>
<body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<img src="http://common.name2sell.com/pixels/pixel.gif" width="2" height="17"><br>
<table cellpadding="0" cellspacing="0" border="0">
<tr><td><img src="http://common.name2sell.com/pixels/pixel.gif" width="35" height="2"></td>
<td valign="top" width="720">
<span class="bigtext">Dokument Fanny och Alexander - VHS</span><br />
<span class="commontext">
<i>VHS</i></span><br />
<img src="http://common.name2sell.com/pixels/pixel.gif" width="2" height="12"><br />
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<img src="http://www2.filmbutiken.se/filmimg/40.jpg" alt=""><br />
</td>
<td width="20">
<img src="http://common.name2sell.com/pixels/pixel.gif" width="20" height="1"><br />
</td>
<td valign="top" class="commontext">
<table cellpadding="0" cellspacing="0" border="0" class="smalltext" style="line-height: 14px;">
<tr><td valign="top">Produktionsår:</td><td width="20"> </td><td valign="top">1986</td></tr>
<tr><td valign="top">Land:</td><td width="20"> </td><td valign="top">Sverige</td></tr>
<tr><td valign="top">Speltid:</td><td width="20"> </td><td valign="top">1 tim 50 min.</td></tr>
<tr><td valign="top">Regissör:</td><td width="20"> </td><td valign="top"><a href="page.asp?page_id=6755&type=custom/filmprod&sub_nr=101&txtSearch=Ingmar+Bergman" class="smalltext" style="font-size: 10px;">Ingmar Bergman</a></td></tr>
<tr><td valign="top">Artikelnr:</td><td width="20"> </td><td valign="top">40</td></tr>
</table>
<br />
<b style="font-size:15px;">85 kr</b><br>
<br />
<form action="/15/contact_ecom3.asp?page_id=6750" target="contact389" method="post" name="ecom3_form" style="{margin: 0px;}" onSubmit="return checkCartSubmitInput(ecom3_form)">
<input type="hidden" name="page_id" value="6750">
<input type="hidden" name="type" value="ecom3">
<input type="hidden" name="sub_nr" value="2">
<input type="hidden" name="item_id" value="5">
<input type="hidden" name="action" value="filmpost">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="commontext">
<input type="text" size="2" value="1" name="quantity" style="height:20px;"> st<br />
</td>
<td width="10">
<img src="http://common.name2sell.com/pixels/pixel.gif" width="10" height="1"><br />
</td>
<td valign="top">
<input type="image" src="/page/custom/filmprod/images/b_add_to_cart.gif" border="0"><br />
</td>
</tr>
</table>
</form>
<br />
Regissören Ingmar Bergman i aktion när han instruerar sina skådespelare i Fanny och Alexander, den största svenska filmproduktionen genom tiderna. Han har själv valt ut detta axplock och mycket i filmen kretsar kring hans eget personliga förhållande till rollfiguren Alexander, som framstår som hans alter ego.
<br />
<br />
</td>
</tr>
</table>
<br />
<a href="javascript:void(null)" onClick="window.history.go(historyCount); return false">Tillbaka...</a><br />
<br />
</td>
<td width="20"> </td>
<td valign="top">
</td></tr>
</table>
<span class="commontext"><br></span>
<script type="text/javascript" src="http://include.reinvigorate.net/re_.js"></script>
<script type="text/javascript">
re_("jp36m-6n76734418");
</script>
</body>
</html>
Re: Spara och sortera information från en webbsida?
Varför vill du handla hos dem om de inte ens kan ha en vettig sökfunktion?
Får du rabatt när du gör deras arbete själv? :p
Nåväl.
Använd en riktig¹ html-parser, jag vet inget om python men en snabb sökning ger
t.ex http://docs.python.org/library/htmlparser.html som borde duga.
Angående de 6000 sidorna. Ange en interval i ditt script eller som argument.
Beroende på hur du kodar så kan du också använda skalets expansionsmöjligheter:
¹Att förlita sig på os.system() för något sådant här är ungefär den största
synden av dem alla.
Får du rabatt när du gör deras arbete själv? :p
Nåväl.
Använd en riktig¹ html-parser, jag vet inget om python men en snabb sökning ger
t.ex http://docs.python.org/library/htmlparser.html som borde duga.
Angående de 6000 sidorna. Ange en interval i ditt script eller som argument.
Beroende på hur du kodar så kan du också använda skalets expansionsmöjligheter:
Kod: Markera allt
http://myurl.com/foo{0..6000}
¹Att förlita sig på os.system() för något sådant här är ungefär den största
synden av dem alla.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Hehe, jag har hittat en del spännande grejer där förut, men framförallt så ser jag det som en utmaning - jag backar inte när saker inte funkar som jag vill!dmz skrev:Varför vill du handla hos dem om de inte ens kan ha en vettig sökfunktion?
Får du rabatt när du gör deras arbete själv? :p

dmz skrev:Nåväl.
Använd en riktig¹ html-parser, jag vet inget om python men en snabb sökning ger
t.ex http://docs.python.org/library/htmlparser.html som borde duga.
Angående de 6000 sidorna. Ange en interval i ditt script eller som argument.
Beroende på hur du kodar så kan du också använda skalets expansionsmöjligheter:Kod: Markera allt
http://myurl.com/foo{0..6000}
¹Att förlita sig på os.system() för något sådant här är ungefär den största
synden av dem alla.
För det första vet jag inte vad du menar med att "förlita sig på os.system()" (jag är nybörjare, som ni kanske märker). För det andra har jag lagt html2text bakom mig, och har istället tagit mig an Beautiful Soup (http://www.crummy.com/software/BeautifulSoup/) och faktiskt lyckats hämta filmtitlarna. Så nu kan jag åtminstone göra en lista med filmtitlar. Yay! Däremot lyckas jag inte kräma ur någon annan vettig information. Men jag forskar vidare...
Koden för att hämta en filmtitel kan se ut ungefär så här
Kod: Markera allt
from BeautifulSoup import BeautifulSoup
import urllib
url = "http://filmbutiken.se/15/page.asp?page_id=6755&type=custom/filmprod&sub_nr=102&product_id=1"
filename = "test/test1"
# Get a file-like object from 'url'.
myUrl = urllib.urlopen(url)
# Read from the object, storing the page's contents in 'myContent'.
myContent = myUrl.read()
#
soup = BeautifulSoup(''.join(myContent))
# Get the film title and print it.
filmTitle = soup.body.table.span.string
print filmTitle
Re: Spara och sortera information från en webbsida?
Hey! Det är det bästa skälet, det. Lycka till.Yuh Learn skrev:men framförallt så ser jag det som en utmaning - jag backar inte när saker inte funkar som jag vill!dmz skrev:Varför vill du handla hos dem om de inte ens kan ha en vettig sökfunktion?
Får du rabatt när du gör deras arbete själv? :p![]()

ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Vid vissa tillfällen när jag ska hämta information får jag felmeddelandet "IndexError: list index out of range", exempelvis när jag ska hämta information från en sida som saknar information (se http://www.filmbutiken.se/15/page.asp?p ... ct_id=6000). Inget konstigt med det, men jag vet inte hur jag ska göra för att upptäcka IndexError innan jag försöker hämta informationen (som inte finns). Alltså, typ: if hämtaInformation =! IndexError: hämtaInformation. Hur gör jag det?
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Okej! Det verkar som att mitt script klarar att hämta all relevant information, ignorera tomma fält och sidor samt skriva ut informationen i den ordning jag vill ha den. Nu har jag bara kvar att spara informationen i en databas.
Jag funderar på om jag inte ska använda SQlite då jag misstänker att det kan bli problem med olika tecken (eventuella citattecken som kan förstöra, m m) om jag skulle använda CSV. Vad tror ni? Jag har inte erfarenhet av någotdera.
Funderar också på hur jag ska läsa ut informationen sen när jag har den i en databas. :S
Jag funderar på om jag inte ska använda SQlite då jag misstänker att det kan bli problem med olika tecken (eventuella citattecken som kan förstöra, m m) om jag skulle använda CSV. Vad tror ni? Jag har inte erfarenhet av någotdera.
Funderar också på hur jag ska läsa ut informationen sen när jag har den i en databas. :S
- Substrata
- Inlägg: 71
- Blev medlem: 13 apr 2010, 11:01
- OS: Arch Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Spara och sortera information från en webbsida?
Du kan alltid lagra data i textuell form med Base64-kodning. Du kan också använda Yaml för att serialisera olika former av strukturerad data om du inte vill använda en databas. Yaml är oberoende av plattform och väl lämpat för dynamiska språk. I Ruby, och förmodligen också Python, är det mycket enkelt att skriva och läsa strukturerad data (allt från kombinationer av tal, strängar, arrays, dictionaries - till hela objekt) till och från variabler.
Senast redigerad av 1 Substrata, redigerad totalt 22 gånger.
- Substrata
- Inlägg: 71
- Blev medlem: 13 apr 2010, 11:01
- OS: Arch Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Spara och sortera information från en webbsida?
System(3) är en del ax POSIX-standarden och används för att från ett program exekvera andra program med hjälp av /bin/sh. Du kan läsa mer om det genom att köra man 3 system i skalet. Man undviker vanligtvis att använda system(3) av säkerhetsskäl eftersom det är lätt att "lura programmet" att göra andra saker genom att sätta olika miljövariabler som /bin/sh i sin tur använder.Yuh Learn skrev:För det första vet jag inte vad du menar med att "förlita sig på os.system()" [...]dmz skrev:Att förlita sig på os.system() för något sådant här är ungefär den största synden av dem alla.
-
- Inlägg: 49
- Blev medlem: 30 nov 2007, 02:20
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Uppsala
Re: Spara och sortera information från en webbsida?
Tack ska du ha för den matnyttiga information. Jag har hämtat datan med BeautifulSoup-modulen och sparat den i en SQLite3-databas, samt kommit igång med SQLite. Känner mig med andra ord nöjd och glad!Substrata skrev:System(3) är en del ax POSIX-standarden och används för att från ett program exekvera andra program med hjälp av /bin/sh. Du kan läsa mer om det genom att köra man 3 system i skalet. Man undviker vanligtvis att använda system(3) av säkerhetsskäl eftersom det är lätt att "lura programmet" att göra andra saker genom att sätta olika miljövariabler som /bin/sh i sin tur använder.Yuh Learn skrev:För det första vet jag inte vad du menar med att "förlita sig på os.system()" [...]dmz skrev:Att förlita sig på os.system() för något sådant här är ungefär den största synden av dem alla.