AutoIt: v3.3.8.1
Версия: 1.0
Категория: Интернет
Описание: Получает комментарии в альбоме для всех фотографий Вконтакте
Код/Пример:
Файл: kontakt InetRead.au3
История версий: 1.0
Источник: autoit-script.ru
Автор(ы): Davyd
p.s: не судите строго Это моя первая опубликованная работа
Версия: 1.0
Категория: Интернет
Описание: Получает комментарии в альбоме для всех фотографий Вконтакте
Код/Пример:
Код:
#include <array.au3>
;_html( _coment()) ; на выходе 1.html
;_exel(_coment()) ; на выходе 1.csv
Func _coment() ; Собирает коментарии всех фотографий в альбоме на Выходе Массив содержащий все коментарии
$albom = InputBox("Вопрос", "введите альбом"&@CRLF&"album-17163262_151565718", "album-17163262_151565718", "", -1, -1, 0, 0)
Dim $id[1]=[1]
Global $id,$id1
$sHTML = BinaryToString(InetRead("http://vk.com/"&$albom), 4)
$Response = $sHTML
$cont=StringRegExp($Response,'count:(.*?)\,',1)
if UBound($cont)<1 then
MsgBox(0,"","Error!")
exit
EndIf
for $i=0 to $cont[0] step 18
ToolTip("скачиваю осталось "&$cont[0]-$i)
$sHTML = BinaryToString(InetRead("http://vk.com/"&$albom&"?"&"act=comments&al=1&offset="&string($i)&"&part=1"), 1)
$Response = $sHTML
$response=StringRegExpReplace($response,"\n"," ")
$response=StringRegExpReplace($response,";",".")
$id1=StringRegExp($Response,'(<div class="fl_l pv_thumb.*?div class="clear_fix pv_comment)',3)
for $j=0 to UBound($id1)-1
_arrayadd($id,$id1[$j])
Next
Next
$k=UBound($id)-1
for $j=$k-1 to 0 step -1
for $j1=$K-1 to 0 step -1
if $j<>$j1 and $id[$j]=$id[$j1] then
_arraydelete($id,$j)
$k=UBound($id)-1
ToolTip("удаляю "&$k-$cont[0])
ExitLoop
EndIf
Next
Next
ToolTip("")
_arraydelete($id,0)
dim $kom[UBound($id)][7]
for $i=0 to UBound($id)-1
$arv=StringRegExp($id[$i],'<img src="(.*?)".*?<div class="fl_l pv_comm"> <a href="(.*?)" .*?class="name">(.*?)</a> <div class="pv_commtext">(.*?)</div>.*?<span class="fl_l">(.*?)<.*?a class="pv_photo_thumb fl_r" href="(.*?)" .*?<img src="(.*?)"',3)
for $j=0 to 6
$kom[$i][$j]=$arv[$j]
Next
Next
_arraydisplay($kom)
Return $kom
EndFunc
Func _exel($kom) ; Создает на выходе (почти) Эксел'евский файл
;~ ******************************
$st=""
FileClose(FileOpen("1.csv", 2))
For $i=0 To UBound($kom)-1
For $j=0 To 6
$st&=$kom[$i][$j]&";"
Next
$st&=@CRLF
FileWrite("1.csv",$st)
$st=""
Next
EndFunc
Func _html($kom) ;Функция создаст Упорядочит все коментарии альбома в HTML формате
_ArraySort($kom,0,0,0,5)
$st=""
$j=2
$html1=""
$html="<html> <body> <table border=1>"
for $i=1 to UBound($kom,1)-1
;ConsoleWrite($kom[$i][0]&" "&$kom[$i][1]&" "&$kom[$i][2]&" "&$kom[$i][3]&" "&$kom[$i][4]&" "&$kom[$i][5]&" "&$kom[$i][6]&" "&@CRLF)
if $i=1 then
$html1&="<td><a href=http://vk.com"&$kom[$i-1][1]&"><img src="&$kom[$i-1][0]&">"&$kom[$i-1][2]&"</a></td>"&@crLF
$html1&="<td>"&$kom[$i-1][3]&"</td>"&@CRLF
$html1&="<td>"&$kom[$i-1][4]&"</td></tr>"&@crLF
endif
if $st=$kom[$i][5] then
$html1&="<td><a href=http://vk.com"&$kom[$i][1]&"><img src="&$kom[$i][0]&">"&$kom[$i][2]&"</a></td>"&@crLF
$html1&="<td>"&$kom[$i][3]&"</td>"&@CRLF
$html1&="<td>"&$kom[$i][4]&"</td></tr>"&@crLF
$j+=1
else
$st=$kom[$i][5]
$html&="<tr> <td rowspan="&$j&"><a href=http://vk.com"& $kom[$i-1][5]&"><img src="&$kom[$i-1][6]&"></a></td><tr>"&@crlf&$html1
$html1=""
$html1&="<td><a href=http://vk.com"&$kom[$i][1]&"><img src="&$kom[$i][0]&">"&$kom[$i][2]&"</a></td>"&@crLF
$html1&="<td>"& $kom[$i][3]&"</td>"&@crLF
$html1&="<td>"&$kom[$i][4]&"</td></tr>"&@crLF
$j=2
EndIf
Next
$html&="</table> </body> </html>"
FileWrite(FileOpen("1.html", 2),$html)
EndFunc
Файл: kontakt InetRead.au3
История версий: 1.0
Источник: autoit-script.ru
Автор(ы): Davyd
p.s: не судите строго Это моя первая опубликованная работа