Avatar billede whyme Nybegynder
04. april 2004 - 19:11 Der er 21 kommentarer og
2 løsninger

Hjælp til parse cvr.dk for oplysninger er det muligt?

Hej eksperter...

Jeg ved ikke om det er ulovligt, i så fald, sig venligst til.

Jeg vil spørge om der er nogen som kan hjælpe mig med at jeg vil gerne parse www.cvr.dk igennem for at se om et firma's CVR nummer virkelig eksisterer...

Eks. hvis vi tager Jubii som eksempel.

Deres CVR nummer er: 18479249

Så jeg beder om at hvis man indtaster det i en input boks, går den til denne side:
http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=xxxxxxxx

I dette tilfælde:
http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=18479249

Ud fra de oplysninger på siden, skal den hente det ud for "Navn: " i dette tilfælde "JUBII A/S" og udskrive på skærmen.


Hvis man skriver et CVR nummer som ikke findes, får man følgende besked på cvr.dk:
"Der er opstået en fejl, i forbindelse med din søgning.
Du bliver desværre nødt til at vente og prøve igen senere."

i det tilfælde skal den udskrive "Firma eksisterer ikke".


Er dette muligt - i så fald, hvordan skal jeg lave det, eller er der nogen som har sådan et parse script hvor man kan søge en side efter indhold.?

På forhånd tak.
Avatar billede sukos Juniormester
04. april 2004 - 21:50 #1
Avatar billede hmortensen Nybegynder
04. april 2004 - 22:19 #2
Hvil du har vist oplysningerne, eller bare ha returnet om det findes eller ej ?
Avatar billede whyme Nybegynder
04. april 2004 - 22:27 #3
hindu_skå: begge dele...

Den skal sige om der er fejl eller ej...

Hvis der er ikke er fejl, skal den skrive firma navnet ud.

Tak.
Avatar billede roenving Novice
04. april 2004 - 23:03 #4
Tjah en Jscript-ting virker, hvis du gør sådan:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Valider CVR-nummer</title>
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JScript">
function validerCVR(f){
  var sURL = "http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=" + f.CVR.value;
  var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
  oXMLHTTP.Open("GET",sURL,false);
  oXMLHTTP.Send();
  var reg = />Navn:<\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td width="500"><font face="Verdana,Geneva,Helvetica,Arial" size="2">(.+)</i;//>
  var m = oXMLHTTP.ResponseText.match(reg);
  if(m)document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " tilhører " + m[0].replace(reg,"$1");
  else document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " findes ikke";
}
</script>
</head>
<body>
<form>
<h1>Check CVR-nummer</h1>
CVR-nummer: <input type="text" name="CVR"><br>
<button onclick="validerCVR(this.form);">Check CVR-nummer</button><br>
<span id="CVRresponse"></span>
</form>
</body>
</html>
Avatar billede whyme Nybegynder
04. april 2004 - 23:45 #5
Okay, havde ikke troet at man kunne lave det i javascript ;)

Hvis du har tid, kan du så gøre, at det også er muligt at hente Adressen, telefon  og e-mail, og lægge ind dem bare ind i <input type="hidden" name="adresse" value="+adresse+"> og samme med email og telefon.

Ved ikke om det er for meget forlangt, men det vil være kanont hvis du kunne lave det...

For at vise at jeg har prøvet selv... kan du se at jeg har lavet:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Valider CVR-nummer</title>
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JScript">
function validerCVR(f){
  var sURL = "http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=" + f.CVR.value;
  var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
  oXMLHTTP.Open("GET",sURL,false);
  oXMLHTTP.Send();
  var reg = />Navn:<\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td width="500"><font face="Verdana,Geneva,Helvetica,Arial" size="2">(.+)</i;//>
  var reg2 = />Adresse:<\/span><\/font><\/P><\/td><TD width="1">&nbsp;<\/td>\s+<td nowrap valign="top">\s+<div align="left"><span class="text">\s+<font face="Verdana,Geneva,Helvetica,Arial" size="2">(.+)</i;//>
  var m = oXMLHTTP.ResponseText.match(reg);
  var m2 = oXMLHTTP.ResponseText.match(reg2);
  if(m)document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " tilhører " + m[0].replace(reg,"$1") + "<br>";
  else document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " findes ikke<br>";
  if(m2)document.getElementById('CVRresponse2').innerHTML = "Til CVR-nummer " + f.CVR.value + " tilhører adresse " + m2[0].replace(reg2,"$1");
  else document.getElementById('CVRresponse2').innerHTML = "Der findes ingen adresse til CVR-nummer " + f.CVR.value + " desværre";
}
</script>
</head>
<body>
<form>
<h1>Check CVR-nummer</h1>
CVR-nummer: <input type="text" name="CVR"><br>
<button onclick="validerCVR(this.form);">Check CVR-nummer</button><br>
<span id="CVRresponse"></span>
<span id="CVRresponse2"></span>
</form>
</body>
</html>

men virker ikke helt (har ikke forstand på kodningen, prøvede bare frem ;)
Avatar billede roenving Novice
05. april 2004 - 00:22 #6
Jeg gad ikke forfølge æøå-fejlen, men du kan vel selv finde ud af at flytte oplysningerne andre steder hen ?-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Valider CVR-nummer</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/485771">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JScript">
function validerCVR(f){
 
  var sURL = "http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=" + f.CVR.value;
  var oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
  oXMLHTTP.Open("GET",sURL,false);
  oXMLHTTP.Send();
  var reg = />Navn:<\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td width="500"><font face="Verdana,Geneva,Helvetica,Arial" size="2">(.+)<br><br><\/font>/i;//>
  var regA = />Adresse:<\/span><\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td nowrap valign="top">\s+<div align="left"><span class="text">\s+<font face="Verdana,Geneva,Helvetica,Arial" size="2">\s+(.+)&nbsp;<br><br><\/font>/i;
  var regE = />E-mail:<\/span><\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td nowrap valign="top"><div align="left"><a href="#"><font face="Verdana,Geneva,Helvetica,Arial" size="2"><span class="text">(.+)<br><\/span>/i;
  var regT = />Telefon:<\/span><\/font><\/p><\/td><td width="1">&nbsp;<\/td>\s+<td nowrap><div align="left"><font size="2" face="Verdana,Geneva,Helvetica,Arial">(.+)<br><br><\/font>/i;
  var m = oXMLHTTP.ResponseText.match(reg);
  if(m){document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " tilhører " + m[0].replace(reg,"$1");}
  else {document.getElementById('CVRresponse').innerHTML = "CVR-nummer " + f.CVR.value + " findes ikke";}
  var mA = oXMLHTTP.ResponseText.match(regA);
  if(mA){document.getElementById('CVRresponse').innerHTML += "<br>Adresse: " + mA[0].replace(regA,"$1");}
  else {document.getElementById('CVRresponse').innerHTML += "<br>Adresse findes ikke";}
  var mE = oXMLHTTP.ResponseText.match(regE);
  if(mE){document.getElementById('CVRresponse').innerHTML += "<br>Email: " + mE[0].replace(regE,"$1");}
  else {document.getElementById('CVRresponse').innerHTML += "<br>Email findes ikke";}
  var mT = oXMLHTTP.ResponseText.match(regT);
  if(mT){document.getElementById('CVRresponse').innerHTML += "<br>Telefon: " + mT[0].replace(regT,"$1");}
  else {document.getElementById('CVRresponse').innerHTML += "<br>Telefon findes ikke";}
}
</script>
</head>
<body>
<form>
<h1>Check CVR-nummer</h1>
<div id="vent" style="position:absolute;top:75px;left:75px;height:150px;width:150px;background:#f70;display:none;text-align:center;font-size:x-large;vertical-align:center;z-index:20">Vent</div>
CVR-nummer: <input type="text" name="CVR"><br>
<button onclick="validerCVR(this.form);">Check CVR-nummer</button><br>
<span id="CVRresponse"></span>
</form>
</body>
</html>
Avatar billede roenving Novice
05. april 2004 - 00:35 #7
Bemærk iøvrigt at det er Jscript, og der kaldes et Microsoft ActiveXObject ...

-- Jeg har fået at vide, at Mozilla også understøtter xmlHTTPRequests, men den syntaks har jeg ikke set (eller ledt efter !-)

-- Hvis du ikke lige selv kan klare det med at smide data det rette sted hen, skal du lige fortælle, hvordan du regner med at bruge det, for jeg går ud fra, at der skal være en form, som submittes på et tidspunkt !o]
Avatar billede grunken Nybegynder
05. april 2004 - 00:42 #8
er det ikke fjollet at begrænse brugere der kan bruge scriptet ved at lave det på klienten ?

ovenstående vil med hjælp af eks sukos's link hurtigt og effektivt laves til afvikling på serveren :o)
Avatar billede roenving Novice
05. april 2004 - 00:46 #9
Sikkert, jeg skulle bare prøve xmlHTTPRequest ...

Men det kunne gøre en hurtigere validering ud af det, hvis det foregik umiddelbart client-side, men sådan noget skal alligevel altid checkes server-side !-)
Avatar billede grunken Nybegynder
05. april 2004 - 00:53 #10
:o)
Avatar billede whyme Nybegynder
05. april 2004 - 02:06 #11
Det bedste vil helt klart være sådan noget som sukos sendte, altså serverside, så folk ikke kan slå tingene fra, eller bruge andre OS eller Browsere som der er problemer med... problemet er at jeg har leget med den før, og ikke kunnet få den til at virke, og så da ingen andre svarede, var roenving umiddelbart igang med noget som i det mindste "virkede" ;)
Avatar billede whyme Nybegynder
05. april 2004 - 02:10 #12
Ja, nu virker roenving's kode (undtagen med æøå) som jeg vil have resultatet.

Det bedste vil helt klart være hvis det var PHP, men jeg kan ikke få det til at virke desværre ... :-/
Avatar billede roenving Novice
05. april 2004 - 02:13 #13
Kan du oversætte regexp'erne til php (og hvadforen sammenligning det nu skal være: preg_match, eregi mmm. ?-)

Der er nogle forskelle, desværre i detaljerne, hovedsageligt er de ens, men en del væsentlige detaljer, som jeg kun har den allerfjerneste anelse om !-)
Avatar billede roenving Novice
05. april 2004 - 02:29 #14
Ha, så checkede jeg lige resultatet af xmlHTTPRequesten, den giver kraftedme ukendt unicode-karakter for ø'et + benh ...

Og en tilfældig anden cvr gav også en ukendt, men det var tilfældigvis også et ø ...
Avatar billede sukos Juniormester
05. april 2004 - 08:04 #15
Her er noget af det du søger:

<html><head><title>CV-nr.</title></head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get">
Indtast cv-nr.:<br>
<input type="text" name="cvnr"><br>
<input type="submit" value="Find">
</form>
<?php
if(isset($_GET["cvnr"])) {
echo"<p>\n";
$find = @file("http://www.cvr.dk/soeg_i_cvr/cvrsoegdetail.asp?cvrnr=". $_GET["cvnr"], 'r');
    if($find) {
    for($i = 0; $i < count($find); $i++) {

    if(preg_match("/Ingen virksomheder i CVR-registeret/", $find[$i])) {
echo"Ingen firma svarer til s&oslash;gning!";
exit;
}

    if(!preg_match("/Juridisk enhed/", $find[$i])) {
    continue;
}else{

for($g = ($i+2); $g < ($i+45); $g++) {
    $find[$g] = strip_tags($find[$g]);
    $find[$g] = trim($find[$g]);
    if($find[$g] == "" || $find[$g] == "&nbsp;") {
continue;
}
    echo $g .". ". $find[$g] ."<br>\n";
        }
    }
}
        }else{
echo"Kunne ikke åbne siden";
    }
}
?>

</body></html>
Avatar billede whyme Nybegynder
05. april 2004 - 14:13 #16
sukos:
Det er en rigtig god kode, det er lige det jeg leder efter.

Hvordan får jeg det da så delt op, i eksempelvis:

<input type="hidden" value="$adresse" name="x">
<input type="hidden" value="$email" name="x">
<input type="hidden" value="$fax" name="x">
osv.

Lige pt. udskriver den bare det der står på siden (også lidt HTML kode)

prøv evt. med cvr:
18479249
og se.


På forhånd Tak
Avatar billede whyme Nybegynder
06. april 2004 - 20:14 #17
sukos: hvis du har tid og lyst, må du meget gerne hjælpe med det sidstnævnte.

Ud af din kode er det dette som jeg ikke helt forstår:
for($g = ($i+2); $g < ($i+45); $g++) {
    $find[$g] = strip_tags($find[$g]);
    $find[$g] = trim($find[$g]);
    if($find[$g] == "" || $find[$g] == "&nbsp;") {
continue;
}
    echo $g .". ". $find[$g] ."<br>\n";


og jeg kan regne ud at det jo er den kode som udskriver resultaterne...
Avatar billede sukos Juniormester
06. april 2004 - 20:30 #18
ved ikke du, på den måde der skal man jo vide præcis hvad der står på siden.
Det med html, er vist webmasteren for siden? Han har lidt rod i html'en, ihvertfald.

Og ved ikke lige hvad det bedste evt. ville være, hvis det skal laves på den måde der.
Avatar billede whyme Nybegynder
18. april 2004 - 21:58 #19
Kom med et svar begge to så ;)

jeg fik det ikke lige som jeg gerne ville have, men... det må jeg vel leve med ;-/
Avatar billede roenving Novice
18. april 2004 - 22:03 #20
Oki, så velbekomme med det du fik '-)
Avatar billede sukos Juniormester
18. april 2004 - 22:09 #21
Jahh, altså, hvis du ved præcis hvordan siden er bygget op, så skulle du nok kunne lave det sidste du mangler i PHP'en, men hvis du ikke konstant følger med i hvordan siden er bygget op, vil jeg nu ikke anbefale det. :O)
Avatar billede whyme Nybegynder
19. april 2004 - 01:19 #22
Nu regner jeg ikke lige med at de ændrer deres side hver dag... tror sådan noget er en gang om året hvis der ændres... max
Avatar billede roenving Novice
19. april 2004 - 15:11 #23
-- tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester