Vinna gagnagrunn úr netsíðum
-
Höfundur - Kóngur
- Póstar: 7496
- Skráði sig: Mán 27. Apr 2009 13:07
- Reputation: 1161
- Staða: Ótengdur
Vinna gagnagrunn úr netsíðum
Sælir
Ekki að ég hafi gert e-h svona ever....
Ég hef leita ð og ekki fundið info um kosningasögu alþingismanna og datt í hug að reyna að smíða lítinn gagnagrunn.
Allt infoið sem ég þarf er á síðum sem byrja á "http://www.althingi.is/dba-bin/"
Fyrsta er:
http://www.althingi.is/dba-bin/atkvgr.pl?nnafnak=8601
og seinasta todate er:
http://www.althingi.is/dba-bin/atkvgr.pl?nnafnak=44004
Gagnagrunnurinn á að sýna s.s. hverjir voru á þingi þegar hvert mál var tekið fyrir og sýna "já", "Nei", "Sat hjá" eða "Fjarverandi" fyrir hverja kosningu sem viðkomandi var á þingi... Ef viðkomandi var ekki á þingi þá bara "blank".
HTTrack er núna buið að vera í 16klst að grípa þessi skjöl af netinu...
Hefur einhver hugmynd um hvað ég get gert næst?
Ekki að ég hafi gert e-h svona ever....
Ég hef leita ð og ekki fundið info um kosningasögu alþingismanna og datt í hug að reyna að smíða lítinn gagnagrunn.
Allt infoið sem ég þarf er á síðum sem byrja á "http://www.althingi.is/dba-bin/"
Fyrsta er:
http://www.althingi.is/dba-bin/atkvgr.pl?nnafnak=8601
og seinasta todate er:
http://www.althingi.is/dba-bin/atkvgr.pl?nnafnak=44004
Gagnagrunnurinn á að sýna s.s. hverjir voru á þingi þegar hvert mál var tekið fyrir og sýna "já", "Nei", "Sat hjá" eða "Fjarverandi" fyrir hverja kosningu sem viðkomandi var á þingi... Ef viðkomandi var ekki á þingi þá bara "blank".
HTTrack er núna buið að vera í 16klst að grípa þessi skjöl af netinu...
Hefur einhver hugmynd um hvað ég get gert næst?
Re: Vinna gagnagrunn úr netsíðum
Búa til script sem parsar þetta. Eru ekki allar síðunar eins uppbyggðar? Ég myndi nota javascript með jsdom eða python með beautifulsoup en það er alveg til eitthvað í flestum tungumálum sem getur gert þetta þokkalega auðveldlega.
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Jah, þú getur notað eitthvað eins og Mule í þetta alltsaman, s.s. lætur það polla vefsíðurnar (að því gefnu að þetta séu hlaupandi númer), skrifar síðan einhverskonar skriptu eða java kóða sem parsar síðuna og Mule skrifar það síðan í gagnagrunn.
Ætli aðalvandamálið sé ekki einmitt þessi skripta, ætli dori sé ekki með "lausnina" þar...
Hefurðu prófað að hafa samband við skrifstofu Alþingis og biðja um þessa upplýsingar? Þetta er augljóslega tekið upp úr gagnagrunni, svona miðað við sourceinn á síðunum
Ætli aðalvandamálið sé ekki einmitt þessi skripta, ætli dori sé ekki með "lausnina" þar...
Hefurðu prófað að hafa samband við skrifstofu Alþingis og biðja um þessa upplýsingar? Þetta er augljóslega tekið upp úr gagnagrunni, svona miðað við sourceinn á síðunum
Kóði: Velja allt
<!-- isqlperl script uppfletting í informix gagnagrunni Alþingis -->
Re: Vinna gagnagrunn úr netsíðum
Góður punktur hjá Daz. Þetta eru örugglega upplýsingar sem þú átt að geta fengið. Ef það verður eitthvað vesen get ég kannski reynt fyrir mér með einhverja scriptu til að vinna gögn úr síðunni. Hvað er það sem þú vilt? Bara allt sem er þarna eða bara einhvern hluta af upplýsingunum?
-
Höfundur - Kóngur
- Póstar: 7496
- Skráði sig: Mán 27. Apr 2009 13:07
- Reputation: 1161
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Ég er nokkuð viss um að Alþingi mundi lata mig fá gögnin, en á einhverju staðalformi, efast um að þeir afriti grunninn fyrri mig...
En það sem ég hef lært af svörunum, þá er það bara það að ég er ekki kalíber í þetta...
Ég var að vonast eftir einhverju easy eins og "data connection" milli excel og access... þar væri ég samt á smá hálum ís...
Reyni að útvista þessu til vina og kunningja...
Takk fyrir hjálpina
En það sem ég hef lært af svörunum, þá er það bara það að ég er ekki kalíber í þetta...
Ég var að vonast eftir einhverju easy eins og "data connection" milli excel og access... þar væri ég samt á smá hálum ís...
Reyni að útvista þessu til vina og kunningja...
Takk fyrir hjálpina
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
rapport skrifaði:Ég er nokkuð viss um að Alþingi mundi lata mig fá gögnin, en á einhverju staðalformi, efast um að þeir afriti grunninn fyrri mig...
En það sem ég hef lært af svörunum, þá er það bara það að ég er ekki kalíber í þetta...
Ég var að vonast eftir einhverju easy eins og "data connection" milli excel og access... þar væri ég samt á smá hálum ís...
Reyni að útvista þessu til vina og kunningja...
Takk fyrir hjálpina
CSV er mjög klassískt staðalform til að dumpa gögnum úr SQL grunni. Excel kann að lesa CSV.
Re: Vinna gagnagrunn úr netsíðum
Á hvaða formi eru gögnin sem HTTrack er búið að sækja? Er það ekki bara html? Þá þarf klárlega eitthvað html parser library í þetta. Svona scripta er samt ekki það mikið mál, ég gæti vippað einhverju svona upp á mjög stuttum tíma.
Það sem þú vilt s.s. er bara töflur sem þú gætir fengið inní Access, Excel eða eitthvað álíka þannig að þú getur séð þing/þingmaður/kosning/atkvæði og gert einhverjar fyrirspurnir og unnið með þau gögn (t.d. tékka hver er latastur í að taka þátt í kosningum :O)?
Það sem þú vilt s.s. er bara töflur sem þú gætir fengið inní Access, Excel eða eitthvað álíka þannig að þú getur séð þing/þingmaður/kosning/atkvæði og gert einhverjar fyrirspurnir og unnið með þau gögn (t.d. tékka hver er latastur í að taka þátt í kosningum :O)?
-
Höfundur - Kóngur
- Póstar: 7496
- Skráði sig: Mán 27. Apr 2009 13:07
- Reputation: 1161
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Daz skrifaði:rapport skrifaði:Ég er nokkuð viss um að Alþingi mundi lata mig fá gögnin, en á einhverju staðalformi, efast um að þeir afriti grunninn fyrri mig...
En það sem ég hef lært af svörunum, þá er það bara það að ég er ekki kalíber í þetta...
Ég var að vonast eftir einhverju easy eins og "data connection" milli excel og access... þar væri ég samt á smá hálum ís...
Reyni að útvista þessu til vina og kunningja...
Takk fyrir hjálpina
CSV er mjög klassískt staðalform til að dumpa gögnum úr SQL grunni. Excel kann að lesa CSV.
Staðan á HTtrack Sem jú grípur html og afritar uppsetninga á síðunum inn á mína vél..
Skv. source-inu þá er þetta Informix grunnur en það er hugsanlega þess virði að kanna hvort og hvernig maður fengi þessi gögn frá þeim.
Upplysingalög eiga að ná yfir þessi gögn og því er það réttur fólks að fá afrit af þeim... það er bara spruning hvort það afrit er svo brúkanlegt til einhvers eða hvort það er PDF útprentun af hverri siðu...
Re: Vinna gagnagrunn úr netsíðum
rapport skrifaði:Skv. source-inu þá er þetta Informix grunnur en það er hugsanlega þess virði að kanna hvort og hvernig maður fengi þessi gögn frá þeim.
Upplysingalög eiga að ná yfir þessi gögn og því er það réttur fólks að fá afrit af þeim... það er bara spruning hvort það afrit er svo brúkanlegt til einhvers eða hvort það er PDF útprentun af hverri siðu...
Það er einmitt það sem mér datt strax í hug. Þeir eru náttúrulega að gefa aðgang að þessum gögnum með því að bjóða uppá þau á þessari vefsíðu. Svo er bara spurning hversu næs þeir séu hvort þeir láti þig fá eitthvað nothæft í það sem þú vilt gera.
edit: endilega talaðu samt við þá og athugaðu hvort þú getir fengið þetta á CSV formi.
Re: Vinna gagnagrunn úr netsíðum
Þar sem skrárnar eru alltaf eins (þeas. áhugaverði hlutinn) sýnist mér þetta vera nokkuð basic
eitthvað í þessa áttina gæti gengið þó ég viðurkenni fúslega að þetta sé ekki mjög skilvirk leið...
rerstin væri svo bara dútlerí og að láta þetta keyra í gegnum allar skrárnar...
eitthvað í þessa áttina gæti gengið þó ég viðurkenni fúslega að þetta sé ekki mjög skilvirk leið...
Kóði: Velja allt
public static string ReadFile (string filePath) {
string line;
if (File.Exists( filePath )) {
StreamReader file = null;
try {
file = new StreamReader( filePath );
while ((line = file.ReadLine()) != null) {
if (line = "<h2 class='FyrirsognSv'>já:</h2>") { // <h2 class='FyrirsognSv'>já:</h2>
// Here interesting text ends
interesting_line = false;
}
if (interesting_line = true) {
Console.WriteLine (line);
}
if (line = "<DIV class=AlmTexti>") { // <DIV class="AlmTexti">
// Here interesting text begins
interesting_line = true;
}
}
}
finally {
if (file != null)
file.Close();
}
}
}
rerstin væri svo bara dútlerí og að láta þetta keyra í gegnum allar skrárnar...
Re: Vinna gagnagrunn úr netsíðum
Spurningin er í raun hvað þú vilt að þetta forrit spýti út úr sér, CSV skrá, SQL skrá eða hvað og þá hvernig þú vilt hafa það sniðið. Ég er ekki gagnagrunns sérfræðingur en mér skilst að betra sé að hafa eina stóra töflu en margar litlar. Eitthvað í þessa áttina:
#atvkaedagreidslu | nafn | atkvaedi
44004 | Pétur | Já
44004 | Jón | Fjarverandi
35021 | Gunna | Nei
osfrv.
Klastraði þessu saman í flýti
http://dl.dropbox.com/u/240751/althingi-windows.zip
Þetta er skrifað í C# en ætti að keyra á flestum Windows vélum án vandkvæða. Ég er bara búinn að prófa þetta hjá mér á Linux en þetta ætti að virka.
notkun:
althingi <skráarnafn>
dæmi:
althingi file.html
Ath. að þetta er ekki ætlað sem fullnaðarútgáfa, meira sem "proof of concept"
#atvkaedagreidslu | nafn | atkvaedi
44004 | Pétur | Já
44004 | Jón | Fjarverandi
35021 | Gunna | Nei
osfrv.
Klastraði þessu saman í flýti
http://dl.dropbox.com/u/240751/althingi-windows.zip
Þetta er skrifað í C# en ætti að keyra á flestum Windows vélum án vandkvæða. Ég er bara búinn að prófa þetta hjá mér á Linux en þetta ætti að virka.
notkun:
althingi <skráarnafn>
dæmi:
althingi file.html
Ath. að þetta er ekki ætlað sem fullnaðarútgáfa, meira sem "proof of concept"
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
kusi skrifaði:Spurningin er í raun hvað þú vilt að þetta forrit spýti út úr sér, CSV skrá, SQL skrá eða hvað og þá hvernig þú vilt hafa það sniðið.
Ég ætla að leyfa mér að vera óssammála þessu, aðalmálið er að túlka vefsíðurnar rétt og hratt. Hvað við síðan gerum við túlkunarniðurstöðurnar er "trivialt".
Re: Vinna gagnagrunn úr netsíðum
Daz skrifaði:kusi skrifaði:Spurningin er í raun hvað þú vilt að þetta forrit spýti út úr sér, CSV skrá, SQL skrá eða hvað og þá hvernig þú vilt hafa það sniðið.
Ég ætla að leyfa mér að vera óssammála þessu, aðalmálið er að túlka vefsíðurnar rétt og hratt. Hvað við síðan gerum við túlkunarniðurstöðurnar er "trivialt".
Ég veit ekki alveg hverju þú átt að vera ósammála hér. Ég legg fram forrit sem einangrar það sem hann hefur áhuga á úr hverri HTML skrá. Spurningin er þá hvað hann vill gera við upplýsingarnar sem hafa verið einangraðar því sem stendur birtir forritið þær bara á skjánum. Á að lokum að setja þær inn í SQL gagnagrunn, Excel... Og hvernig á að sníða gögnin til, þ.e. hvernig vill hann geyma þær...
Mér finnst þetta bara mjög gildar og góðar spurningar
Gæti verið að þú hafir misskilið mig?
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
kusi skrifaði:Daz skrifaði:kusi skrifaði:Spurningin er í raun hvað þú vilt að þetta forrit spýti út úr sér, CSV skrá, SQL skrá eða hvað og þá hvernig þú vilt hafa það sniðið.
Ég ætla að leyfa mér að vera óssammála þessu, aðalmálið er að túlka vefsíðurnar rétt og hratt. Hvað við síðan gerum við túlkunarniðurstöðurnar er "trivialt".
Ég veit ekki alveg hverju þú átt að vera ósammála hér. Ég legg fram forrit sem einangrar það sem hann hefur áhuga á úr hverri HTML skrá. Spurningin er þá hvað hann vill gera við upplýsingarnar sem hafa verið einangraðar því sem stendur birtir forritið þær bara á skjánum. Á að lokum að setja þær inn í SQL gagnagrunn, Excel... Og hvernig á að sníða gögnin til, þ.e. hvernig vill hann geyma þær...
Mér finnst þetta bara mjög gildar og góðar spurningar
Gæti verið að þú hafir misskilið mig?
Já.
En samt ekki :p
Mér fannst það enginn spurning hverju það spýtti útúr sér, þegar forritið til að parsa síðuna er komið þá getur hann bara reddað hinu sjálfur
-
- 1+1=10
- Póstar: 1127
- Skráði sig: Lau 30. Okt 2004 16:02
- Reputation: 8
- Staðsetning: Rivertown
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Setti saman smá PHP kóða sem gæti verið lausnin á þessu hjá þér
Við byrjum á því að gera töflu í mysql sem heitir althingi_votes og er búin til svona (t.d. í phpmyadmin):
Fyrst er svo hér update.php, ALLS EKKI sniðugt að keyra það í browser, best að fara í command prompt og gera php -f update.php
Athugið að þar sem ég set slóðina saman sem sýnir leitarniðurstöðurnar ($qry og svo $url) þar er líka hægt að sleppa bara $qry og fara frekar á leitarsíðuna fyrir atkvæðagreiðslur, velja þar það sem maður vill fá að sjá, smella á Leita takkann og afrita síðan slóðina á síðunni sem sýnir niðurstöðu leitarinnar í breytuna $url.
Svo er hér index.php, skjalið sem sýnir upplýsingar um atkvæðasögu alþingismanna
Ég vil annars benda á að skráin sem ég geri include á þarna, dbconnect.php, inniheldur bara ósköp venjulegan kóða sem tengist mysql gagnagrunninum. Ef þið vitið ekki hvernig sú skrá á að vera þá get ég alveg sett það inn líka, annars ætti það ekki að vera mikið vandamál
Vil samt vara við því að eins og ég er með það hér þá skrifar update.php skjalið víst alls 25291 færslur í gagnagrunninn svo það væri kannski sniðugt að breyta leitarskilyrðunum í $url breytunni í update.php. Svo er að vísu líka hægt að gera gagnagrunnstöfluna bara þannig að hún visti nafn hvers og eins einu sinni en uppfæri svo ákveðna reiti í töflunni hversu oft ákveðin atkvæði voru greidd. Eins og þetta er þá vistar þetta hvernig hver og einn greiddi atkvæði í hverju máli fyrir sig þannig að það er líka hægt að fletta upp hvernig atkvæði féllu í ákveðnum málum eftir auðkenni þess.
Vonandi var þetta lausnin sem þú varst að leita að
Við byrjum á því að gera töflu í mysql sem heitir althingi_votes og er búin til svona (t.d. í phpmyadmin):
Kóði: Velja allt
CREATE TABLE `althingi_votes` (
`name` char(40) NOT NULL,
`vote` char(20) NOT NULL,
`case_id` int(11) NOT NULL,
`vote_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`vote_id`)
)
Fyrst er svo hér update.php, ALLS EKKI sniðugt að keyra það í browser, best að fara í command prompt og gera php -f update.php
Kóði: Velja allt
<?
session_start();
@include('dbconnect.php');
ignore_user_abort(true);
set_time_limit(0);
$n = "\n";
function quote_smart($value, $quote = true) {
// Stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Quote if not integer
if (!is_numeric($value) || $quote) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
$qry = array();
$qry[] = 's_lt=0';
$qry[] = 'lthing=';
$qry[] = 'dags=';
$qry[] = 'mfl=0';
$qry[] = 'malnr=';
$qry[] = 'skjalnr=';
$qry[] = 'umr=';
$qry[] = 'embaett=';
$qry[] = 'nefnd=';
$qry[] = 'sam_fel=';
$qry[] = 'skrad=';
$qry[] = 'nja=';
$qry[] = 'nnei=';
$qry[] = 'satuhj=';
$qry[] = 'fjarv=';
$qry[] = 'thmsk=';
$qry[] = 'atkv=';
$url = 'http://www.althingi.is/dba-bin/f-nafnak.pl?' . implode('&', (array) $qry);
$page = file_get_contents($url);
if (preg_match_all('|(/dba-bin/atkvgr.pl\?nnafnak=[0-9]+)|i', $page, $matches)) {
$data = array();
foreach ($matches[1] as $url_match) {
$data['case_id'] = substr(strrchr($url_match, '='), 1);
$page_match = file_get_contents('http://www.althingi.is' . $url_match);
if (preg_match_all('|<nobr>([^<]+):</nobr> ([^,<]+)|i', $page_match, $matches_match)) {
$voters = array();
foreach ($matches_match[1] as $key => $val) {
$data['name'] = $val;
$data['vote'] = $matches_match[2][$key];
$votes_query = @mysql_query('insert into althingi_votes (' . implode(', ', array_keys($data)) . ') values (' . implode(',', array_map('quote_smart', $data)) . ')');
if (!$votes_query || !@mysql_affected_rows()) die('Failed inserting data from ' . $url_match . $n . 'mysql_error: ' . mysql_error());
}
}
sleep(1);
}
}
else die('error getting url list');
?>
Athugið að þar sem ég set slóðina saman sem sýnir leitarniðurstöðurnar ($qry og svo $url) þar er líka hægt að sleppa bara $qry og fara frekar á leitarsíðuna fyrir atkvæðagreiðslur, velja þar það sem maður vill fá að sjá, smella á Leita takkann og afrita síðan slóðina á síðunni sem sýnir niðurstöðu leitarinnar í breytuna $url.
Svo er hér index.php, skjalið sem sýnir upplýsingar um atkvæðasögu alþingismanna
Kóði: Velja allt
<?
session_start();
@include('dbconnect.php');
$n = "\n";
function quote_smart($value, $quote = true) {
// Stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Quote if not integer
if (!is_numeric($value) || $quote) {
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
if ($_POST) {
$name = $_POST['name'];
$voter = array();
$voter['name'] = $name;
$votes_query = @mysql_query('select * from althingi_votes where name = ' . quote_smart($name));
if (mysql_errno()) die('mysql_error: ' . mysql_error());
while ($row = @mysql_fetch_assoc($votes_query)) {
$voter['votes'][$row['vote']]++;
}
$_SESSION['voter'] = $voter;
header('location: index.php');
die;
}
$voter = (array) $_SESSION['voter'];
?>
<html>
<head>
<title>Skoða atkvæði þingmanna</title>
</head>
<body>
<?
$namelist = (array) $_SESSION['namelist'];
if (!count($namelist)) {
$votes_query = @mysql_query('select name from althingi_votes group by name');
if (mysql_errno()) echo 'mysql_error: ' . mysql_error() . $n;
else {
while ($row = @mysql_fetch_assoc($votes_query)) {
$namelist[] = $row['name'];
}
$_SESSION['namelist'] = $namelist;
}
}
if (count($namelist)) {
?>
<form method="post">
Veldu þingmann: <select name="name">
<?
foreach ($namelist as $name) {
echo ' <option value="' . $name . '"' . ($voter['name'] == $name ? ' selected' : '') . '>' . $name . $n;
}
?>
</select>
<input type="submit" value="Skoða">
</form>
<?
}
echo '<br>' . $n;
if (count($voter)) {
echo '<b>' . $voter['name'] . '</b><br><br>' . $n;
if (count($voter['votes'])) {
foreach ($voter['votes'] as $key => $val) {
echo $key . ': ' . $val . '<br>' . $n;
}
}
}
?>
</body>
</html>
Ég vil annars benda á að skráin sem ég geri include á þarna, dbconnect.php, inniheldur bara ósköp venjulegan kóða sem tengist mysql gagnagrunninum. Ef þið vitið ekki hvernig sú skrá á að vera þá get ég alveg sett það inn líka, annars ætti það ekki að vera mikið vandamál
Vil samt vara við því að eins og ég er með það hér þá skrifar update.php skjalið víst alls 25291 færslur í gagnagrunninn svo það væri kannski sniðugt að breyta leitarskilyrðunum í $url breytunni í update.php. Svo er að vísu líka hægt að gera gagnagrunnstöfluna bara þannig að hún visti nafn hvers og eins einu sinni en uppfæri svo ákveðna reiti í töflunni hversu oft ákveðin atkvæði voru greidd. Eins og þetta er þá vistar þetta hvernig hver og einn greiddi atkvæði í hverju máli fyrir sig þannig að það er líka hægt að fletta upp hvernig atkvæði féllu í ákveðnum málum eftir auðkenni þess.
Vonandi var þetta lausnin sem þú varst að leita að
Gigabyte GA-MA790FXT-UD5P, AMD Phenom II X4 955 @3.2Ghz, 2 x 4gb Corsair Vengeance DDR3 @1600mhz LP, EVGA Geforce GTX 760, Seagate Barracuda 500gb, 20x Sony DVDRW, TT Big Typhoon og 700W Tagan BZ allt í Cooler Master Stacker kassa með 55" Philips HDTV :]
-
- 1+1=10
- Póstar: 1127
- Skráði sig: Lau 30. Okt 2004 16:02
- Reputation: 8
- Staðsetning: Rivertown
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
No comments? Væri gaman að fá smá feedback um þetta. Annars er bara svoldið áhugavert að skoða þetta svona og sjá hversu oft sumir segja já eða nei, sem er einmitt aðalástæða þess að mér datt í hug að setja þetta saman Kannski spurning samt um að gera þetta þannig að það sýni frekar töflu yfir alla og hversu oft hver og einn hefur greitt hvða atkvæði. Thoughts?
Gigabyte GA-MA790FXT-UD5P, AMD Phenom II X4 955 @3.2Ghz, 2 x 4gb Corsair Vengeance DDR3 @1600mhz LP, EVGA Geforce GTX 760, Seagate Barracuda 500gb, 20x Sony DVDRW, TT Big Typhoon og 700W Tagan BZ allt í Cooler Master Stacker kassa með 55" Philips HDTV :]
Re: Vinna gagnagrunn úr netsíðum
DoofuZ skrifaði:No comments? Væri gaman að fá smá feedback um þetta. Annars er bara svoldið áhugavert að skoða þetta svona og sjá hversu oft sumir segja já eða nei, sem er einmitt aðalástæða þess að mér datt í hug að setja þetta saman Kannski spurning samt um að gera þetta þannig að það sýni frekar töflu yfir alla og hversu oft hver og einn hefur greitt hvða atkvæði. Thoughts?
Þú vilt algjörlega skrá hvert og eitt atkvæði. Hugsanlega myndirðu jafnvel vilja búa til töflu yfir nöfn og tengja svo bara milli taflanna. Þá geturðu bara búið til view yfir hversu mörg atkvæði hver og einn hafa greitt.
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
DoofuZ skrifaði:No comments? Væri gaman að fá smá feedback um þetta. Annars er bara svoldið áhugavert að skoða þetta svona og sjá hversu oft sumir segja já eða nei, sem er einmitt aðalástæða þess að mér datt í hug að setja þetta saman Kannski spurning samt um að gera þetta þannig að það sýni frekar töflu yfir alla og hversu oft hver og einn hefur greitt hvða atkvæði. Thoughts?
Byrjar á að lesa þetta bara complett inn í grunn, svo geturðu dundað þér við að normaliza gögnin eftir að þú ert kominn með eina stóra töflu. T.d. búa til eina þingmannatöflu (SenateId;Name; osfrv) , eina kosningatöflu (VoteID; Date;Description;osfrv), eina niðurstöðutöflu (VoteID; SenateID; voteCast; osfrv).
Eða ég myndi gera það svona, þá er hægt að velta gögnunum aðeins fyrir sér, hver hefur oftast kosið, hver kaus hvernig, hver sagði oftast nei.
Kannski spurning um að stækka þingmannatöfluna til að innihalda kjörtímabil og flokk, þá væri t.d. hægt að sjá hver kaus oftast gegn sínum (s.s. stjórnarmeðlimur sem studdi ekki stjórnarfrumvarp). Hægt að gera allskonar við svona gögn með smá stoðgögnum til viðbótar.
Re: Vinna gagnagrunn úr netsíðum
Og finna svo aðferð (scrape-a einhversstaðar annarsstaðar af vefnum) hvaða flokkum hver þingmaður var í á þeim tíma sem var kosið.
-
Höfundur - Kóngur
- Póstar: 7496
- Skráði sig: Mán 27. Apr 2009 13:07
- Reputation: 1161
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
http://dl.dropbox.com/u/12608149/Al%C3%BEingi.zip
Ég er ekki kominn lengra en að safna þessu...
Edit: var að pakka og hún er líklega nokkrar min að synca file-inn yfir í dropboxið 335MB...
Ég er ekki kominn lengra en að safna þessu...
Edit: var að pakka og hún er líklega nokkrar min að synca file-inn yfir í dropboxið 335MB...
-
- 1+1=10
- Póstar: 1127
- Skráði sig: Lau 30. Okt 2004 16:02
- Reputation: 8
- Staðsetning: Rivertown
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Ertu s.s. ekki búinn að prófa mína aðferð? Eða hentar hún kannski ekki fyrir þig? Skil ekki alveg tilganginn í því að afrita bara allt html og fara svo að vinna úr því eftirá þegar það er miklu auðveldara að setja inn leitarskilyrðin og nota svo slóðina á niðurstöðusíðunni í PHP scripti (eða einhverju álíka) til að lesa allar upplýsingar beint inn. Þá sleppur maður við það að þurfa að bíða endalaust lengi eftir að eitthvað prógram verði búið að taka afrit af öllu og þurfa svo að finna einhverja aðferð eftir það til að vinna úr þeim gögnum, mér finnst það amk. aðeins of mikið vesen.
Gigabyte GA-MA790FXT-UD5P, AMD Phenom II X4 955 @3.2Ghz, 2 x 4gb Corsair Vengeance DDR3 @1600mhz LP, EVGA Geforce GTX 760, Seagate Barracuda 500gb, 20x Sony DVDRW, TT Big Typhoon og 700W Tagan BZ allt í Cooler Master Stacker kassa með 55" Philips HDTV :]
-
Höfundur - Kóngur
- Póstar: 7496
- Skráði sig: Mán 27. Apr 2009 13:07
- Reputation: 1161
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
DoofuZ skrifaði:Ertu s.s. ekki búinn að prófa mína aðferð? Eða hentar hún kannski ekki fyrir þig? Skil ekki alveg tilganginn í því að afrita bara allt html og fara svo að vinna úr því eftirá þegar það er miklu auðveldara að setja inn leitarskilyrðin og nota svo slóðina á niðurstöðusíðunni í PHP scripti (eða einhverju álíka) til að lesa allar upplýsingar beint inn. Þá sleppur maður við það að þurfa að bíða endalaust lengi eftir að eitthvað prógram verði búið að taka afrit af öllu og þurfa svo að finna einhverja aðferð eftir það til að vinna úr þeim gögnum, mér finnst það amk. aðeins of mikið vesen.
Í fullri alvöru, þá er ég bara það glær í þessu að ég skil varla það sem þú ert að hreyta í mig...
Ég þakka samt kærlega viðleitnina og ég setti þennan zip file inn svo að hugsanlega gæti það auðveldað einhverjum sem hefði áhuga á þessu að gera þetta... ... ég get þetta ekki...
-
- 1+1=10
- Póstar: 1127
- Skráði sig: Lau 30. Okt 2004 16:02
- Reputation: 8
- Staðsetning: Rivertown
- Staða: Ótengdur
Re: Vinna gagnagrunn úr netsíðum
Sorry, var nú ekki ætlun mín að hreyta þessu í þig, hef bara verið svo mikið í php forritun undanfarin ár að stundum gleymi ég að það kunna ekki allir á php
En fyrst ég var búinn að setja saman svona forrit þá ákvað ég að reyna bara að einfalda notkunina á því og setti því saman smá pakka utanum þetta. Þennan pakka má nálgast hér en það eina sem þarf að gera er að afþjappa zip skránna í einhverja möppu og keyra svo althingi.vbs í gang. Vefslóðin sem á að setja í boxið sem kemur þá upp er vefslóðin á niðurstöðusíðunni sem þú færð eftir leit að atkvæðagreiðslum á althingi.is. Ef ég fer t.d. inná http://www.althingi.is/vefur/f-nafnak.html og smelli bara beint á Leita takkann þá fæ ég niðurstöður frá yfirstandandi þingi og þá afrita ég bara slóðina þar, sem er http://www.althingi.is/dba-bin/f-nafnak.pl?s_lt=0<hing=&dags=&mfl=0&malnr=&skjalnr=&umr=&embaett=&nefnd=&sam_fel=&skrad=&nja=&nnei=&satuhj=&fjarv=&thmsk=&atkv= og skelli henni svo í boxið sem althingi.vbs birtir.
Það sem forritið gerir síðan er að það les yfir allar atkvæðagreiðslurnar þarna, safnar þeim saman og skrifar svo í textaskrá en þá skrá geturu t.d. opnað í excel og unnið þar eitthvað með niðurstöðurnar. Eins og er þá skrifast niðurstöðurnar á eftirfarandi máta: nafn, númer atkvæðagreiðslu, atkvæði. Ef þú vilt fá þetta út á einhvern annan hátt eins og t.d. "nafn, atkvæði, fjöldi" þar sem kæmi þá fram hve oft viðkomandi greiddi hvert atkvæði og hve oft hann sat hjá þá er lítið mál að breyta þessu
Vonandi hjálpar þetta þér eitthvað með þetta
En fyrst ég var búinn að setja saman svona forrit þá ákvað ég að reyna bara að einfalda notkunina á því og setti því saman smá pakka utanum þetta. Þennan pakka má nálgast hér en það eina sem þarf að gera er að afþjappa zip skránna í einhverja möppu og keyra svo althingi.vbs í gang. Vefslóðin sem á að setja í boxið sem kemur þá upp er vefslóðin á niðurstöðusíðunni sem þú færð eftir leit að atkvæðagreiðslum á althingi.is. Ef ég fer t.d. inná http://www.althingi.is/vefur/f-nafnak.html og smelli bara beint á Leita takkann þá fæ ég niðurstöður frá yfirstandandi þingi og þá afrita ég bara slóðina þar, sem er http://www.althingi.is/dba-bin/f-nafnak.pl?s_lt=0<hing=&dags=&mfl=0&malnr=&skjalnr=&umr=&embaett=&nefnd=&sam_fel=&skrad=&nja=&nnei=&satuhj=&fjarv=&thmsk=&atkv= og skelli henni svo í boxið sem althingi.vbs birtir.
Það sem forritið gerir síðan er að það les yfir allar atkvæðagreiðslurnar þarna, safnar þeim saman og skrifar svo í textaskrá en þá skrá geturu t.d. opnað í excel og unnið þar eitthvað með niðurstöðurnar. Eins og er þá skrifast niðurstöðurnar á eftirfarandi máta: nafn, númer atkvæðagreiðslu, atkvæði. Ef þú vilt fá þetta út á einhvern annan hátt eins og t.d. "nafn, atkvæði, fjöldi" þar sem kæmi þá fram hve oft viðkomandi greiddi hvert atkvæði og hve oft hann sat hjá þá er lítið mál að breyta þessu
Vonandi hjálpar þetta þér eitthvað með þetta
Gigabyte GA-MA790FXT-UD5P, AMD Phenom II X4 955 @3.2Ghz, 2 x 4gb Corsair Vengeance DDR3 @1600mhz LP, EVGA Geforce GTX 760, Seagate Barracuda 500gb, 20x Sony DVDRW, TT Big Typhoon og 700W Tagan BZ allt í Cooler Master Stacker kassa með 55" Philips HDTV :]