Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как вытащить данные с web-страницы / 25 сообщений из 42, страница 1 из 2
09.11.2006, 23:33
    #34117745
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
Тема такая. Есть файл excel, в который вставлена куча ссылок на web-страницы одного сайта...соответственно при клике на ссылку в браузере открывается страница.. с этой страницы надо достать информацию..вручную делать очень долго, может можно как-то программно решить такую задачу?
соответственно раз ссылки в excel желательно это на VB сделать..
...
Рейтинг: 0 / 0
10.11.2006, 07:57
    #34117985
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
hirondelle11Тема такая. Есть файл excel, в который вставлена куча ссылок на web-страницы одного сайта...соответственно при клике на ссылку в браузере открывается страница.. с этой страницы надо достать информацию..вручную делать очень долго, может можно как-то программно решить такую задачу?
соответственно раз ссылки в excel желательно это на VB сделать..
Как-то надо было закачать содержимое с 20 страниц (ссылки были разделены переводом строки), написал простенький shell-скрипт - в цикле for вызов wget.
Если бы у меня ссылки были в excel, то я бы выгрузил это в csv, потом аналогичный shell-скрипт по csv.
...
Рейтинг: 0 / 0
10.11.2006, 09:52
    #34118323
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
SeaGate hirondelle11Тема такая. Есть файл excel, в который вставлена куча ссылок на web-страницы одного сайта...соответственно при клике на ссылку в браузере открывается страница.. с этой страницы надо достать информацию..вручную делать очень долго, может можно как-то программно решить такую задачу?
соответственно раз ссылки в excel желательно это на VB сделать..
Как-то надо было закачать содержимое с 20 страниц (ссылки были разделены переводом строки), написал простенький shell-скрипт - в цикле for вызов wget.
Если бы у меня ссылки были в excel, то я бы выгрузил это в csv, потом аналогичный shell-скрипт по csv.

преобразовал файл в .csv-вообще все ссылки удалились..они в неявном виде в excel-в смысле написан тект на русском, а в поле гиперссылка... так что совсем не понял, что же имелось виду..попробую сформулировать иначе..есть колонка, в которой содржатся гиперссылки.я кликаю на ячейку мышкой-открывается страница. мне нужно с этой страницы взять данные в полях E-mail и тел.
если кто-нибудь напишет конкретный код-буду безумно благодарен..
просто ну совсем не понимаю с чего в этом случае надо начинать...
...
Рейтинг: 0 / 0
10.11.2006, 19:03
    #34120574
lonejan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
Есть другая тема=) И намного проще, в IE цопаешь правой кнопкой по странице и там есть пункт меню 'Эксопрт в Microsoft Excell'
Таблицы корректно переносятся и т.п.
...
Рейтинг: 0 / 0
10.11.2006, 20:00
    #34120701
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
lonejanЕсть другая тема=) И намного проще, в IE цопаешь правой кнопкой по странице и там есть пункт меню 'Эксопрт в Microsoft Excell'
Таблицы корректно переносятся и т.п.

проблема-то совсем не в этом...просто скопировать в excel одну страницу не проблема..страниц много, на них есть ссылки, надо автоматически открывать ссылки и брать со страниц определенную информацию..
...
Рейтинг: 0 / 0
10.11.2006, 21:36
    #34120791
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
через полчаса всё будет; подожди
...
Рейтинг: 0 / 0
10.11.2006, 21:59
    #34120807
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
линки в первой колонке листа, с 1-го по 20-й ряды
+
подключаем библиотеку "Microsoft XML" (Tools --> References...)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub oh()

Dim i, s, o As New XMLHTTP

For i =  1  To  20 
o.Open "GET", Cells(i,  1 ).Hyperlinks( 1 ).Address, False
o.send
s = o.responseText

MsgBox s

<здесь вытягиваем из строки s нужную инфу и записываем ее куда надо>

Next i

Set o = Nothing

End Sub

...
Рейтинг: 0 / 0
10.11.2006, 22:51
    #34120836
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
Еще лучше (и не будет проблем с кириллицей):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub oh()

Dim i, s, o As New WinHttp.WinHttpRequest

For i =  1  To  20 
o.Open "GET", Cells(i,  1 ).Hyperlinks( 1 ).Address, False
o.send
s = o.responseText

MsgBox s

<здесь вытягиваем из строки s нужную инфу и записываем ее куда надо>

Next i

Set o = Nothing

End Sub

...
Рейтинг: 0 / 0
10.11.2006, 22:53
    #34120838
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
подключить ссылку на Microsoft WinHTTP Services
...
Рейтинг: 0 / 0
11.11.2006, 00:25
    #34120887
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
фЕще лучше (и не будет проблем с кириллицей):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub oh()

Dim i, s, o As New WinHttp.WinHttpRequest

For i =  1  To  20 
o.Open "GET", Cells(i,  1 ).Hyperlinks( 1 ).Address, False
o.send
s = o.responseText

MsgBox s

<здесь вытягиваем из строки s нужную инфу и записываем ее куда надо>

Next i

Set o = Nothing

End Sub




насколько я понимаю первая часть скрипта открывает ссылки, так?
а вот в MsgBox s надо написать еще алгоритм, чтобы находить на самой web странице нужную информацию, так? выдается какое-то окошко с тегами и там нужно искать образец
напрмер вот смотрю html код одной страницы...
куча всяких тегов.
поле с e-mail там описано так
<tr>
<td>
<table cellspacing="10" cellpadding="0" border="0">
<tr>
<td>E-mail</td>
<td><span class="blue11b">
mail@mail.ru
</span></td>
</tr>

мне нужно вот это самое mail@mail.ru вытянуть..подскажите как..плз..
...
Рейтинг: 0 / 0
11.11.2006, 00:43
    #34120898
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
MsgBox я приплел только для демонстрации содержимого строки s.

Щас подумаю насчет распарсивания тегов.
...
Рейтинг: 0 / 0
11.11.2006, 00:50
    #34120904
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
ясно...
а вот в переменную s записывается вся веб страница или только опредленное количество символов? не могу из справки понять...
...
Рейтинг: 0 / 0
11.11.2006, 01:26
    #34120919
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
абсолютно вся! это просто MsgBox не всё показывает.

2.
Можно отталкиваться и от "собаки" (@), вытягивая из s мыло:

Подключаем ссылку на Microsoft VBScript Regular Expressions

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub reg_exp_tester()
MsgBox SubMatchTest("ddddd" & vbCrLf & "mail@mail.ru>;kkkkkkkkk")
End Sub

Function SubMatchTest(inpStr)
Dim oRe, oMatch, oMatches
Set oRe = New RegExp
oRe.Pattern = "(\w+)@(\w+)\.(\w+)"
Set oMatches = oRe.Execute(inpStr)
Set oMatch = oMatches( 0 )
SubMatchTest = oMatch
End Function

...
Рейтинг: 0 / 0
11.11.2006, 01:29
    #34120920
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
ты меня извини, но я перепил кофе и у меня щас голова болит типа сильно
...
Рейтинг: 0 / 0
11.11.2006, 12:15
    #34121097
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
я лучше спасибо скажу:)) сейчас буду разбираться и до ума доводить это все дело..а еще такой вопрос: если на доступ к странице надо ввобдить пароль-как его встроить в программу?
...
Рейтинг: 0 / 0
11.11.2006, 12:44
    #34121116
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
вроде и без пароля работает...:))
правильно вытягивает данные вроде...
...
Рейтинг: 0 / 0
11.11.2006, 13:18
    #34121140
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
нет, вот как раз без ввода пароля и не работает...вместо реального адреса какая-то фигня вытягивается...как в проге прописать логин и пароль, чтобы она корректно страницу видела?
а еще помимо e-mail надо вытягивать строку адрес..причем ее может и не быть на странице...
если встречается то в html это выглядит так
<tr>
<td>Дом. адрес</td>
<td><span class="blue11b">какой-то адрес</span></td>
</tr>
подскажи плз:)
...
Рейтинг: 0 / 0
11.11.2006, 15:37
    #34121240
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
Типа так (GET меняем на POST):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub oh()

Dim i, s, o As New WinHttp.WinHttpRequest

For i =  1  To  20 

o.Open "POST", Cells(i,  1 ).Hyperlinks( 1 ).Address, False

o.send "login=IVANOV&password=123123"

s = o.responseText

... ... ...

Next i

Set o = Nothing

End Sub

...
Рейтинг: 0 / 0
11.11.2006, 16:11
    #34121273
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub address()
Dim s, z, t1, t2, addr

s = "<td>Дом. адрес</td>" & vbCrLf & "<td><span class=""blue11b"">какой-то адрес</span></td>"

z = InStr( 1 , s, "Дом. адрес")

If z >  0  Then
   t1 = InStr(InStr(z, s, "<span"), s, ">") +  1 
   t2 = InStr(t1, s, "</")
   addr = Mid(s, t1, t2 - t1)
   MsgBox addr
End If


End Sub

...
Рейтинг: 0 / 0
11.11.2006, 17:45
    #34121339
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
ф
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub address()
Dim s, z, t1, t2, addr

s = "<td>Дом. адрес</td>" & vbCrLf & "<td><span class=""blue11b"">какой-то адрес</span></td>"

z = InStr( 1 , s, "Дом. адрес")

If z >  0  Then
   t1 = InStr(InStr(z, s, "<span"), s, ">") +  1 
   t2 = InStr(t1, s, "</")
   addr = Mid(s, t1, t2 - t1)
   MsgBox addr
End If


End Sub



а как сделать так, чтобы в s писать строку такого содержания с вебстраницы?
то есть <td>Дом. адрес</td>" & vbCrLf & "<td><span class=""blue11b"">какой-то адрес</span></td> искалось, а вместо слов какой-то адрес стояло ну максимум 50 символов?
...
Рейтинг: 0 / 0
11.11.2006, 17:50
    #34121343
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
фТипа так (GET меняем на POST):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub oh()

Dim i, s, o As New WinHttp.WinHttpRequest

For i =  1  To  20 

o.Open "POST", Cells(i,  1 ).Hyperlinks( 1 ).Address, False

o.send "login=IVANOV&password=123123"

s = o.responseText

... ... ...

Next i

Set o = Nothing

End Sub



не работает...там пароль не спрашивается при доступе на страницу, там просто информация в другом виде отображается.. может пароль надо писать в определенное место?
html код этого места страницы такой
<tr><td height="5px" style="color: #a5acb2; font-size:10px;"><span style="padding-left: 7px;">логин (e-mail)</span></td></tr><tr><td><input type="text" name="username" size="10" value="" style="font-size: 11px; margin-left: 7px; width: 120px;" class="wideField"></td></tr><tr><td height="5px" style="color: #a5acb2; font-size: 10px;"><span style="padding-left: 7px;">пароль</span></td></tr><tr><td><input type="password" name="password" size="10" value="" style="font-size: 11px; margin-left: 7px; width: 120px;" class="wideField"></td>
вот в value="" надо вставить сначала логин,а потом пароль...это возможно?
...
Рейтинг: 0 / 0
11.11.2006, 18:04
    #34121355
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
hirondelle11а как сделать так, чтобы в s писать строку такого содержания с вебстраницы?
то есть <td>Дом. адрес</td>" & vbCrLf & "<td><span class=""blue11b"">какой-то адрес</span></td> искалось, а вместо слов какой-то адрес стояло ну максимум 50 символов?
Это же просто демо!
Тебе не нужно заморачиваться на эту тему!
s будет равно o.responseText и ничего "поправлять" в s не нужно!
...
Рейтинг: 0 / 0
11.11.2006, 18:07
    #34121356
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
hirondelle11не работает...там пароль не спрашивается при доступе на страницу, там просто информация в другом виде отображается.. может пароль надо писать в определенное место?
html код этого места страницы такой
<tr><td height="5px" style="color: #a5acb2; font-size:10px;"><span style="padding-left: 7px;">логин (e-mail)</span></td></tr><tr><td><input type="text" name="username" size="10" value="" style="font-size: 11px; margin-left: 7px; width: 120px;" class="wideField"></td></tr><tr><td height="5px" style="color: #a5acb2; font-size: 10px;"><span style="padding-left: 7px;">пароль</span></td></tr><tr><td><input type="password" name="password" size="10" value="" style="font-size: 11px; margin-left: 7px; width: 120px;" class="wideField"></td>
вот в value="" надо вставить сначала логин,а потом пароль...это возможно?
Значит, в твоем случае д.б.: o.send " username =IVANOV&password=******"
...
Рейтинг: 0 / 0
11.11.2006, 18:11
    #34121358
ф
ф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
И еще тонкость.
Найди чуть выше по коду тег <form ... action="??????"

и посмотри равен ли адрес "??????" адресу страницы, на которой вводятся логин и пароль юзера.

Если они не равны, то это очень усложнит тебе жизнь, я думаю.
...
Рейтинг: 0 / 0
11.11.2006, 18:17
    #34121361
hirondelle11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вытащить данные с web-страницы
ф hirondelle11а как сделать так, чтобы в s писать строку такого содержания с вебстраницы?
то есть <td>Дом. адрес</td>" & vbCrLf & "<td><span class=""blue11b"">какой-то адрес</span></td> искалось, а вместо слов какой-то адрес стояло ну максимум 50 символов?
Это же просто демо!
Тебе не нужно заморачиваться на эту тему!
s будет равно o.responseText и ничего "поправлять" в s не нужно!

врубился!!!!!!!!!!!!
супер!!!!!!!!!!!!!работает!!!!!!!!!!!!!!!!!!!!!
спасиба!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / как вытащить данные с web-страницы / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]