Что нового

Вывод в текстовый файл списка на сайте

Сообщения
34
Репутация
0
Доброе утро специалисты по языку Autoit.
Подскажите решение по такому вопросу:

На сайте https://chastnik.ru/aob/22/ указаны вакансии трудоустройства, но их очень много, и они идут на разных страницах.
Выводимый текст этого списка - это разумеется не весь текст объявления, а только его часть.

Как вывести в текстовый файл - эти короткие записи которые идут в желтом списке на страницах https://chastnik.ru/aob/22/ затем https://chastnik.ru/aob/22/?PAGEN_5=2 и.д. ?
В ссылках - меняется последняя цифра (это значит, что идет следующая аналогичная страница сайта)
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Василиса Лукьянчикова [?]
Что именно вы имеете ввиду?

Пример вывода полного списка
Код:
#include <Inet.au3>
#include <FileConstants.au3>
Global $g_sFile = @ScriptDir & "\JobList.txt", $g_sPath = "/aob/22"
_DumpJobList($g_sFile, $g_sPath)

Func _DumpJobList($sFile, $sPath)
	Local $sURL = "https://chastnik.ru", $sHTML, $aRegExp, $sOut, $hFile
	While 1
		$sHTML = _INetGetSource($sURL & $sPath)
		If @error Then ExitLoop
		$aRegExp = StringRegExp($sHTML, '<div class="large-12 columns aob__text"><a href="(.+?)">(.*?)</a></div>', $STR_REGEXPARRAYGLOBALMATCH)
		If Not @error Then
			For $i = 0 To UBound($aRegExp) - 1 Step 2
				$sOut &= "URL=" & $sURL & $aRegExp[$i] & @CRLF & "Desc=" & $aRegExp[$i + 1] & @CRLF & @CRLF
			Next
		EndIf
		$aRegExp = StringRegExp($sHTML, '<a class="block_white navigation__arrow navigation__next" href="(.+?)" title="Следующая страница">След.</a>', $STR_REGEXPARRAYMATCH)
		If @error Then ExitLoop
		$sPath = $aRegExp[0]
	WEnd
	$hFile = FileOpen($sFile, $FO_OVERWRITE + $FO_UTF8)
	FileWrite($hFile, $sOut)
	FileClose($hFile)
EndFunc   ;==>_DumpJobList
 
Автор
В
Сообщения
34
Репутация
0
Tempo
Да у вас скрипт наверное делает то, что нужно.
Но он выдает русскоязычный текст в какой-то странной кодировке.
Я не могу его прочесть.

Примерно вот так в текстовом файле выдается информация:

URL=https://chastnik.ru/aob/56/2207867/
Desc=Оператор пресса (штамповщик) на пр-во, знание

И так - весь файл - идут вот такие записи.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Попробуйте так
Код:
#include <Inet.au3>
#include <FileConstants.au3>
Global $g_sFile = @ScriptDir & "\JobList.txt", $g_sPath = "/aob/22"
_DumpJobList($g_sFile, $g_sPath)

Func _DumpJobList($sFile, $sPath)
	Local $sURL = "https://chastnik.ru", $sHTML, $aRegExp, $sOut, $hFile
	While 1
		$sHTML = _INetGetSource($sURL & $sPath)
		If @error Then ExitLoop
		$aRegExp = StringRegExp($sHTML, '<div class="large-12 columns aob__text"><a href="(.+?)">(.*?)</a></div>', $STR_REGEXPARRAYGLOBALMATCH)
		If Not @error Then
			For $i = 0 To UBound($aRegExp) - 1 Step 2
				$sOut &= "URL=" & $sURL & $aRegExp[$i] & @CRLF & "Desc=" & $aRegExp[$i + 1] & @CRLF & @CRLF
			Next
		EndIf
		$aRegExp = StringRegExp($sHTML, '<a class="block_white navigation__arrow navigation__next" href="(.+?)" title="Следующая страница">След.</a>', $STR_REGEXPARRAYMATCH)
		If @error Then ExitLoop
		$sPath = $aRegExp[0]
	WEnd
	$hFile = FileOpen($sFile, $FO_OVERWRITE)
	FileWrite($hFile, $sOut)
	FileClose($hFile)
EndFunc   ;==>_DumpJobList
 
Автор
В
Сообщения
34
Репутация
0
Tempo
Выдает вот такой результат:
URL=https://chastnik.ru/aob/56/2207867/
Desc=Оператор пресса (штамповщик) на пр-во, знание принципов работы прессов разл. типов, способов штампов...

URL=https://chastnik.ru/aob/55/2207865/
Desc=Рабочий на сборку крепежа (хомут) для работы в цеху, гр. 3х3 с 8.00 до 20.00, возм. ночн. 2х2, с 20...

URL=https://chastnik.ru/aob/56/2207866/
Desc=Сварщик точечной сварки, машинная контактная сварка, обучение, оформл. по ТК РФ, график 4х2 (день и ...

URL=https://chastnik.ru/aob/52/2208237/
Desc=Администратор - помощник для встречи посетителей и приема входящих людей, ведение регистрации журнал...

URL=https://chastnik.ru/aob/60/2208297/
Desc=Администратор на автомойку, график 3х3 с 8 до 20, зарплата 12000 руб.

URL=https://chastnik.ru/aob/61/2208422/
Desc=Администратор-директор в структурное подразделение, опыт приветствуется, график 5х2, доход до 40 тыс...

URL=https://chastnik.ru/aob/52/2208390/
Desc=Администратор-консультант с функциями менеджера, прием звонков, обработка вх. заявок, консульт. клие...

URL=https://chastnik.ru/aob/50/2208095/
Desc=Администратор-консультант, желательно медицинское образование, график 5х2, возм. гибкого графика для...

URL=https://chastnik.ru/aob/52/2208544/
Desc=Администратор-менеджер для работы в офисе, в т.ч. студенты, военные пенсионеры, график свободный.

URL=https://chastnik.ru/aob/52/2208452/
Desc=Администратор-оператор, прием и обработка входящих звонков, отчетная документация, обучение на рабоч...

URL=https://chastnik.ru/aob/59/2208247/
Desc=Администратор-помощник руководителя в торговый отдел, гибкий график, достойная оплата + премии (ежем...

URL=https://chastnik.ru/aob/61/2208244/
Desc=Администратор-референт в сферу управления персоналом, карьерный рост, удобный график, возможно совме...

URL=https://chastnik.ru/aob/52/2208041/
Desc=Администратор-специалист оптового склада, секретарь-менеджер, помощник менеджера на неполный рабочий...

URL=https://chastnik.ru/aob/49/2208255/
Desc=Активный помощник на частичную занятость, в т.ч. пенсионеры. Дружный коллектив. Простые обязанности.

URL=https://chastnik.ru/aob/51/2208133/
Desc=Бармен в фитнес-клуб, утро с 7 до 15, вечер с 15 до 23, график плавающий, удобно в т.ч. для студенто...

URL=https://chastnik.ru/aob/51/2208123/
Desc=Бармен, хостесс в бар, центр города, удобный график, питание, развоз, з/плата еженедельно.

URL=https://chastnik.ru/aob/56/2208078/
Desc=Бетонщики-монолитчики (бригада) со съемной опалубкой.

URL=https://chastnik.ru/aob/170/2207933/
Desc=Бухгалтер в туристическую компанию.

URL=https://chastnik.ru/aob/170/2207841/
Desc=Бухгалтер на первичную документацию, знание ТК РФ, зарплата по итогам собеседования.

URL=https://chastnik.ru/aob/170/2208205/
Desc=Бухгалтер на первичную документацию, с опытом работы, график 5х2 - с 9.00 до 17.00, зарплата 20000 р...
 

Alecsis

Осваивающий
Сообщения
101
Репутация
41
Привет!
С кодировкой скрипта всё Ok, а вот сама страничка закодирована в UTF8, отсюда-то и ноги растут…
Код:
#include <Inet.au3>
#include <FileConstants.au3>
Global $g_sFile = @ScriptDir & "\JobList.txt", $g_sPath = "/aob/22"
_DumpJobList($g_sFile, $g_sPath)

Func _DumpJobList($sFile, $sPath)
    Local $sURL = "https://chastnik.ru", $sHTML, $aRegExp, $sOut, $hFile
    While 1
;~         $sHTML = _INetGetSource($sURL & $sPath)  ; было
;~         If @error Then ExitLoop                  ;
        ;
        $sHTML = INetRead($sURL & $sPath, $INET_FORCERELOAD)  
        If @error Then ExitLoop                               ;
        $sHTML = BinaryToString($sHTML, $SB_UTF8)             ; не забываем кодировку страницы UTF8
        ;
        $aRegExp = StringRegExp($sHTML, '<div class="large-12 columns aob__text"><a href="(.+?)">(.*?)</a></div>', $STR_REGEXPARRAYGLOBALMATCH)
        If Not @error Then
            For $i = 0 To UBound($aRegExp) - 1 Step 2
                $sOut &= "URL=" & $sURL & $aRegExp[$i] & @CRLF & "Desc=" & $aRegExp[$i + 1] & @CRLF & @CRLF
            Next
        EndIf
        $aRegExp = StringRegExp($sHTML, '<a class="block_white navigation__arrow navigation__next" href="(.+?)" title="Следующая страница">След.</a>', $STR_REGEXPARRAYMATCH)
        If @error Then ExitLoop
        $sPath = $aRegExp[0]
    WEnd
;~     $hFile = FileOpen($sFile, $FO_OVERWRITE)                 ; было
    $hFile = FileOpen($sFile, BitOr($FO_OVERWRITE, $FO_ANSI))   ; стало: кодировку можно заменить на $FO_UTF8
    FileWrite($hFile, $sOut)
    FileClose($hFile)
EndFunc   ;==>_DumpJobList
Результат теперь выглядит так:
URL=https://chastnik.ru/aob/56/2207867/
Desc=Оператор пресса (штамповщик) на пр-во, знание принципов работы прессов разл. типов, способов штампов...

URL=https://chastnik.ru/aob/55/2207865/
Desc=Рабочий на сборку крепежа (хомут) для работы в цеху, гр. 3х3 с 8.00 до 20.00, возм. ночн. 2х2, с 20...

URL=https://chastnik.ru/aob/56/2207866/
Desc=Сварщик точечной сварки, машинная контактная сварка, обучение, оформл. по ТК РФ¬ график 4х2 (день и ...

и т.д.
 
Верх