Hämta data från hemsida, hur?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Hämta data från hemsida, hur?

Inlägg av Icecap »

Jag är inte hemma på detta men i essens ska vi läsa en hemsida (ligger lokalt på LAN'et, 192.168.100.xxx\blabla\blabla) och plocka ut data från en tabell. Dessa data ska sedan sparas i var sin fil.

Aktionen som ska göras är alltså:
1: Hämta sidan.
2: Plocka ut data.
3: Skriva varje data i en textfil.
4: Vänta 20 sek.
5: Upprepa.

Sidan uppdateras automatisk var 20 sek.

Jag kan nada om PHP osv. men det är ju möjligt att göra detta.

Ett exempel på ett par av de data som ska hämtas ut (del av sidan):
<tr>
<td>Current Power</td>
<td><b>63.909</b></td>
<td>kW</td>
<td>&nbsp;</td>
<td>Current monthly energy yield</td>
<td>51143.007</td>
<td>kWh</td>
</tr>

Tillverkaren av utrustningen som vi ska hämta data ifrån svara inte på kontakt, kunden (ganska stor) har en felaktig inverter som ska bytas och inte heller de får svar.

Informationen från tillverkaren av utrustningen är mycket sparsmakad, vissa saker i manualen indikerar att det bör gå att hämta dessa data men inte ett suck om hur man gör ut över en lista över kommandon - men inte hur man använder dom.

Enhetens IP-nummer är i övrigt en helt annan än den som bankas in i manualen och det går inte att ändra den.

Hade jag kunnat hämta sidan till en textbuffer hade jag enkelt kunnat göra ett C++ program (Borland C Builder 6) som kunde hitta texterna som är aktuella och sedan hitta första siffra omedelbart efter detta och plocka ut dessa till texten i filerna.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Hämta data från hemsida, hur?

Inlägg av johano »

Kolla på python och BeautifulSoap, den är mycket bra att parse:a html med
https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Edit: php går fetbort i min värld, det är ett rent skämt till språk/ramverk: https://eev.ee/blog/2012/04/09/php-a-fr ... ad-design/

/johan
Senast redigerad av johano 20 september 2016, 09:23:34, redigerad totalt 1 gång.
zealotry
Inlägg: 918
Blev medlem: 9 oktober 2004, 22:28:40
Ort: Västerås

Re: Hämta data från hemsida, hur?

Inlägg av zealotry »

Du nämner PHP? Vill du att en hemsida ska söka av en annan hemsida och sen skriva till en fil? Jag hade nog gjort ett litet script lokalt istället. I tex Python, mycket smidigt att göra liknande grejer.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Hämta data från hemsida, hur?

Inlägg av Icecap »

Är inte kompis med Python men har jobbat lite i det. Ska kolla på det. Tack.
Nerre
Inlägg: 26709
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Hämta data från hemsida, hur?

Inlägg av Nerre »

Jag hade gjort det med ett perl-script (som använder curl eller wget för att dra in informationen).

Perl är ju redan från början gjort för att extrahera data så det är relativt lätt att filtrera fram relevant data från en webbsida och sen skriva det till en textfil (formaterat på det vis man vill ha det).

Men det är bara för att jag har hållt på med sånt förut. Är det HTML så lär det väl finnas funktionsbibliotek som gör att man lite mer strukturerat kan filtrera fram informationen (istället för att bara söka med regexp som man gör i perl). Men eftersom jag inte hållt på med sånt förut skulle jag först försöka med perl.

Det finns ju också http-bibliotek till perl så man inte behöver curl/wget, men då måste man lära sig dem också och det känns lite overkill för en så pass enkel appliaktion.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hämta data från hemsida, hur?

Inlägg av TomasL »

Gissar att det är en webbsida inbyggd i en omformare eller liknande, om så är fallet så faller alla metoder som bygger på script mm på server-sidan, då den inte är åtkomlig programmatiskt.

Vad man då måste göra är att skapa sig en webb-klient som kan extrahera data, alternativt skriva en plugin till lämplig webbläsare, dvs IE, FF eller liknande.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Hämta data från hemsida, hur?

Inlägg av Icecap »

TomasL har helt rätt, det är en samlingspunkt för ett gäng invertrar och det har varit "intressant" att bara komma så långt att vi kan läsa sidan som data finns på.
Nerre
Inlägg: 26709
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Hämta data från hemsida, hur?

Inlägg av Nerre »

Som sagt var, wget och curl är smidiga sätt att "hämta" en webbsida, sen kan man köra datat "genom" nåt annat för att filtrera ut informationen.

Är sidan simpelt kodad (med bara HTML-taggar, som exemplet indikerade) så tror jag att gammal hederlig filtrering med regexp är enklast.

Jag kan inte ens regexp utantill utan brukar behöva prova mig fram lite, men det är ju rätt enkelt gjort att börja med att spara ner en kopia av sidan med wget och sen skriver man till att börja med ett perl-script (eller liknande) som läser filen och parsar ut relevanta data. Har man väl parsat ut dessa data är det ju enkelt att sen skriva om scriptet så det sparar ner till en fil.
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Hämta data från hemsida, hur?

Inlägg av danielr112 »

Om den ser ut som ovan kan du ju göra den i valfritt språk. Jag kör oftast bash/php som kombo. Skriver mycket till övervakning och där parsar vi extremt mycket websidor för att hämta statusar. Och det ska vara enkelt och funktionibelt. Behövs det tar jag till perl/python eller andra språk.


Så det du beskriver är en barnlek så länge sidan är någotsåndär statisk. Lite regexp och liknande och du har allt klart. (Går utan med att bara greppa på radnummer om det är statisk data)


edit: för att bara spara lite data till en fil:
while [ 1 ];
do
curl http://sida.... > fil
sleep 20;
done
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Hämta data från hemsida, hur?

Inlägg av SeniorLemuren »

Jag byggde det med Delphi (pascal). Där finns de internetkomponenter som behövs för att ladda hem sidan som ett textblock där man sedan söker de textsträngar man är intresserad av.

Jag gjorde ett program som läste in och kopierade alla nyinsatta annonser till Blocket en gång i tiden, för att använda i ett eget köp och säljprogram.

Jag byggde även ett program som jag kallade Snooker, som letade igenom i nätet efter Svenska mailadresser. Fick ihop nästan 1 million st. :) Gjorde sedan ett program som använde dessa adresser till att göra massutskick av reklam. Det gick åt pipan Telia stängde ner mitt konto efter 60 000 utskick. Det är numera preskiberat. :)

Allt byggdes i Delhpi och det finns ju även för C.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hämta data från hemsida, hur?

Inlägg av lillahuset »

Jasså farbror har ett förflutet som spammare.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Hämta data från hemsida, hur?

Inlägg av SeniorLemuren »

Jag tror det var mest nyfikenhet som drev på, detta hände innan spam hade blivit ett verkligt problem. Men mycket skäll fick jag. :D
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hämta data från hemsida, hur?

Inlägg av lillahuset »

Ibland får man vad man förtjänar. :)
Användarvisningsbild
hubben
Inlägg: 1754
Blev medlem: 7 september 2010, 11:46:58
Ort: Örviken

Re: Hämta data från hemsida, hur?

Inlägg av hubben »

Oj vad många inlägg om vilket språk som bör användas.. ;)

Om du har PHP på maskinen du vill parsa datat på:

$string = file_get_contents( "http://blablabla" );

sedan någon lämplig preg_match på den och spara undan datat från olika fält på det format du vill ha det. Hojta till om du vill ha utförligare kod, gjorde exakt samma sak mot lite borrjiggar som vi har för inte så länge sedan.. samma support från leverantören, samma behov hos kunden.. ;)
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Hämta data från hemsida, hur?

Inlägg av Icecap »

Lite uppdatering: Det visar sig att spel-programmet på datorn har inbyggt funktionalitet för detta.

Denna funktionalitet kommer vi därför att använda.
Skriv svar