Обговорення користувача:MaryankoD/Сільрада (08.02.2011—09.02.2011)

Матеріал з Вікіпедії — вільної енциклопедії.
Найсвіжіший коментар: Tomahiv у темі «Сільрада» 13 років тому
Перейти до навігації Перейти до пошуку
Повний архів: Обговорення_користувача:MaryankoD/АвтоАрхів
Обговорення: Обговорення_користувача:MaryankoD

Сільрада

[ред. код]

Попробуйте цей код, чи піде. Ідея така - дати лише посилання на сторінку, й нехай програма читає сама. Задається список посилань.

http://gska2.rada.gov.ua/pls/z7502/A005?rdat1=07.04.2009&rf7571=13928
http://gska2.rada.gov.ua/pls/z7502/A005?rdat1=07.04.2009&rf7571=13931

Це треба зберегти в файлі з назвою silrada_in.txt

Потім зберегти код у файл silrada.pl:

#!/usr/bin/perl 

use Encode;

open(SL, "silrada_in.txt");

while  ($url = <SL>)
{ 
$url =~s/^\s+//;
$url =~s/\s+$//;
$url =~ s/\&/\\\&/; 
$line = `curl $url`;
$line = encode("utf-8", decode("cp1251", $line)); 
$line_name = $line;
$line_rdat = $line;

$line_name =~ m/News">(.*?)<\/h3/g; 
$name1 = $1; 
$name1 =~ s/<br>/\,/;
($name2, $region, $district) = split(/\,/, $name1, 3);
($shortname, $rest) = split(/ /, $name2, 2); 
$searchname = "$shortname сільрада"; 

$line_rdat =~ m/rdat1=(.*?)"/g; 
$rdat = $1; 
 
$i = 0;
while ($line =~ m/News">(.*?)\&nbsp\;/g)
{
@val[$i] = $1;
$i++;
}

$area = @val[23]/1000;
$area =~ s/\./\,/;
$pop = @val[26];
$pop =~ s/\.//;
$centre = @val[17];
$address = @val[33];
$zip = @val[14];
$phone = @val[31];
$phonecode = @val[30];

open(CVK, "cvk.csv");
  
while($line1 = <CVK>)
{
  ($c1, $c2, $c3, $c4) = split(/\;/,$line1, 4);
  $c4 =~ s/\n//;  
  if ($c3 eq $searchname){
    $district =~ s/^ //;
    $district =~ s/ $//;
    $distr1 = $district;
    if ($c4 eq $distr1){ 
   $KOA = $c2}}
}

$url2 = "http://gska2.rada.gov.ua/pls/z7502/A007?rdat1=$rdat";
$url2 =~ s/\&/\\\&/; 
$line2 = `curl $url2`;
$line2 = encode("utf-8", decode("cp1251", $line2)); 

$i = 0;
while ($line2 =~ m/News">\n(.*?)\n\&nbsp\;/g)
{
@val2[$i] = $1;
$i++;
}

$members = @val2[6];

print<<ECARD;
START
{{Селищна рада|
   | назва               = $name2
   | будівля             = $picture
   | зображення_розмір   = $picture_size
   | зображення_підпис   = $caption
   | розташування        = $location
   | регіон              = $region
   | район               = $district
   | центр               = $centre
   | голова              = $head
   | кількість членів    = $members
   | код КОАТУУ          = $KOA
   | облікова картка     = $card
   | площа               = $area
   | населення           = $pop
   | населені пункти     = $villages
   | поштовий індекс     = $zip
   | телефонний код      = $phonecode
   | адреса              = $address
   | телефонний номер    = $phone
   | електронна скринька = $email
   | веб-сторінка        = $web
  }}

'''$name2 '''

END
ECARD
;

}

Запуск:

>perl silrada.pl > silrada_out.txt

У файлі silrada_out.txt повинні бути одразу дві сторінки (скільки url в списку). Все це готове для завантажування пайтоном.

Звісно, це лише чорновик. Доповніть, будь-ласка, макет сторінки шаблонами, категоріями і т.п., як вам подобається. Можна частину інформації із картки повторити в основному полі, щоб було густіше. Але наразі попробуйте, чи йде.

--Дядько Ігор 19:09, 8 лютого 2011 (UTC)Відповісти

Дуже Вам дякую! Це значно прискорить і полегшить роботу!! --Tomahiv 19:34, 9 лютого 2011 (UTC)Відповісти