Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
Excel

Парсинг определенной информации со ссылки в ячейке

10.10.2021, 19:40. Показов 5687. Ответов 36

Студворк — интернет-сервис помощи студентам
Добрый день, вечер, утро!
Подскажите, пожалуйста, как парсить информацию с ссылки, ссылка находится в ячейке эксель, я по ней перехожу, и хочу в соседнюю ячейку вставить информацию с определенного блока ( в моем случае мне нужны обязанности вакансии с работа ру или хх).
Мой код ниже, он переходит по ссылке , но дальше ничего не происходит, и как быть непонятно, посмотрите, пожалуйста, что не так? может быть кто-то встречался с подобной проблемой?
Файл прикрепил архивом, в нем эксель.

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub A10()
Dim обязанности As String
Dim сайт As Object
ILastRow = Cells(Rows.Count, 4).End(xlUp).Row
Set сайт = CreateObject(«InternetExplorer.Application»)
сайт.Visible = True
сайт.Navigate Range("D3:D" & ILastRow)
обязанности = сайт.document.queryselector("обязаннос" Or "задачи" Or "требования").innertext
Range("E3:E" & ILastRow).Value = обязанности
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2021, 19:40
Ответы с готовыми решениями:

Как написать на скрипт java поиска ссылки на определенной html странице если известно начало ссылки но не известен конец.
Как написать на java скрипт поиска ссылки на определенной html странице если известно начало ссылки которую ищем, но не известен ее конец.

Обратится к определённой ячейке области
Добрый день! Такой вопрос - формирую макет программно. И у меня есть области, которые дублируются. Как к ним можно потом обратится?...

Фокус на определенной ячейке в DataGridView
Всем привет. Подскажите пожалуста, можно ли вернуть курсор на определенную ячейку, например на (0,0) и если да, то как? Нашел в сети...

36
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
12.10.2021, 14:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Alimov97 Посмотреть сообщение
как избежать этого сообщения?
Известно как - выключить сообщения.

Application.DisplayAlerts=false

Добавлено через 1 минуту
И с протоколом безопасности можно поиграть.

Добавлено через 8 минут
Цитата Сообщение от Alimov97 Посмотреть сообщение
Как быть если вакансия в архиве?
Можно вытащить. Информация об обязанностях остаётся на странице.
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
14.10.2021, 15:04  [ТС]
I can ,

Здравствуйте! Не видел Вашего ответа на другой странице, грустил, не знал как быть…
За это время пробовал DisplayAlerts=False
Display Alerts- не помогает, все равно выскакивает

Вытащить информацию типо так?
If Arr.innertext = Array(“Вакансия в архиве”) Then
Arr.Click
Так?
А потом опять ищем теги обязанности, задачи и тд
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
14.10.2021, 15:55
Цитата Сообщение от Alimov97 Посмотреть сообщение
Так?
Нет, не так. Всё немного сложнее.

Добавлено через 32 минуты
Сейчас на работе, недосуг. Вечером посмотрю.
1
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
14.10.2021, 16:02  [ТС]
I can ,

Спасибо! Буду ждать!
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
15.10.2021, 07:26
Лучший ответ Сообщение было отмечено Alimov97 как решение

Решение

Alimov97, вот
Вложения
Тип файла: rar Лист Microsoft Excel.rar (17.3 Кб, 14 просмотров)
1
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
15.10.2021, 13:42  [ТС]
I can ,

все круто!!! Спасибо!!!

Но система безопасности меня доканала!)))
Когда в ваш макрос в экселе вставляю др. ссылки, выскакивает эта фигня…
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
15.10.2021, 13:46
Цитата Сообщение от Alimov97 Посмотреть сообщение
выскакивает эта фигня…
Попробуйте покапаться в настройках офиса, там наверняка можно это отключить.
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
15.10.2021, 14:15  [ТС]
I can ,

.Open “GET”, Trim$(r),False
Почему False? Что это значит?
Получаем данные с сайта, записываем в r без пробелов в начале и конце, почему не тру?

Добавлено через 48 секунд
можно вам скинуть ваш код с моими комментами, чтобы я смог понять логику?
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
15.10.2021, 14:56
Цитата Сообщение от Alimov97 Посмотреть сообщение
Почему False? Что это значит?
Тип режима (type) – может принимать два значения true - код будет выполняться, не ожидая ответа от сервера или false – сценарий остановит работу до возврата сервером ответа на запрос
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
15.10.2021, 16:46  [ТС]
I can ,

Посмотрите, пожалуйста, я правильно понимаю код в комментариях? Я там немного диапазон исправил для своей задачи , у меня все работает кроме блокировки системы безопасности!)
Вложения
Тип файла: docx Dokument_Microsoft_Word.docx (14.0 Кб, 0 просмотров)
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
15.10.2021, 16:50  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Option Explicit
 
Option Compare Text
 
Sub A97()
 
Dim s As String, st As String, r As Range, ILastRow As Integer, Arr, i As Integer, k As Long
 
ILastRow = Sheets("Анализ").Cells(Rows.Count, 8).End(xlUp).Row 'Обязанности:
 
Dim oXMLHTTP: Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") 'Теги
 
Application.DisplayAlerts = False ' Отключить вывод сообщений и оповещений во время выполнения макроса,которое у меня почему-то нихрена не работает
 
Application.ErrorCheckingOptions.BackgroundChecking = False
 
ThisWorkbook.RemovePersonalInformation = False
 
Application.EnableEvents = False
 
ThisWorkbook.EnableConnections 'Подавление сист безопасности, которое тоже нихрена не работает
 
Arr = Array("Вакансия в архиве", "обязанности:", "задачи:", "делать:", "вы будете:", "обязанностей сотрудника:")
 
For Each r In Sheets("Анализ").Range("H2:H" & ILastRow) 'ссылки
 
oXMLHTTP.Open "GET", Trim$(r), False ' Trim$(r) без пробелов в конце и начале в строке, ФОЛС для быстроты, остановит работу до возврата сервером ответа на вопрос
 
oXMLHTTP.send 'Выполняется чтение
 
On Error Resume Next 'Если возникла ошибка
 
st = DeleteTags(oXMLHTTP.responseText) 'удаляем теги и возвращаем текст ответа от сервера на отправленный запрос
 
s = "": k = 0 'Если будет ошибка, то в ячейке будет пусто
 
For i = 0 To UBound(Arr) 'возвращает значение типа Arr (у нас 6 тегов) i от 0 до 5
 
If InStr(1, st, Arr(i)) > 0 Then 'Если в 1 строке и строке st есть совпадение по Arr(i)
 
If i = 0 Then ' Срабтает ток если на сайте есть Вакансия в архиве
 
s = Arr(0) & ". " 'Типо вакансия в архиве + продолжение, а если мнененадо в ячейке вакансияв архиве, то s = & ". "
 
Else 'Если в строке нет совпадений Arr(i)
 
k = InStr(1, Split(st, Arr(i))(1), "{") - 1 ' к равно сравнение 1 строчки и чего(массива?)?, "{" - это что такое???
 
s = s & Trim$(Mid(Split(st, Arr(i))(1), 1, IIf(k > 50 And k < 500, k, 300))) 's равно s(в которой пока ничего не записано) и удалем пробелы в начале и в конце,возвращаем кол-во знаков встроке и формируемграничение текста обязанностей, от 50 до 300
 
Sheets("Анализ").Cells(r.Row, r.Column - 1) = s 'записываем в ячейку готовый ответ
 
Exit For
 
End If
 
End If
 
Next i
 
'If s = "" Then MsgBox Trim$(r)
 
Next
 
Set oXMLHTTP = Nothing
 
Application.DisplayAlerts = True
 
Application.EnableEvents = True
 
Application.ErrorCheckingOptions.BackgroundChecking = True 'возвращаем оповещения на место
 
'MsgBox "OK"
 
End Sub
 
Private Function DeleteTags(st As String) As String 'Убираем теги
 
Dim s As String
 
With CreateObject("vbscript.regexp") 'работаем с текстом и тегами
 
.Pattern = "\<.*?\>" 'шаблон заполнения тегов
 
.Global = True 'хз
 
s = .Replace(st, "") 's равно меняем ст на ""
 
st = s ' ст=""
 
.Pattern = "\\.*?\E"
 
s = .Replace(st, "")
 
End With
 
s = Replace(s, vbCrLf, " ")
 
s = Replace(s, vbCr, " ")
 
s = Replace(s, vbLf, " ")
 
s = Replace(s, vbNewLine, " ")
 
s = Replace(s, Chr(8), " ")
 
s = Replace(s, "&nbsp;", " ")
 
s = Replace(s, "&mdash;", "")
 
Do While InStr(1, s, " ") > 0
 
s = Replace(s, " ", " ")
 
Loop
 
DeleteTags = s 'короче сейчас в буфере остались теги, но их нужно удалять, и мы удаляем их из буфера, то есть с эксель ячейками мы сейчас не работаем
 
End Function
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
15.10.2021, 21:02
Это ппц, товарищи 90% мимо.
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
16.10.2021, 11:28  [ТС]
I can ,

Так поэтому и прошу разъяснить, потому что не понимаю (
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
16.10.2021, 12:16
Цитата Сообщение от Alimov97 Посмотреть сообщение
Так поэтому и прошу разъяснить
Извините меня пожалуйста, но я наверное не сумею вам всё разъяснить
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
18.10.2021, 10:03  [ТС]
I can ,

В любом случае спасибо! Попробую покопаться ещё! Может быть сумею найти код полегче!)
0
bite
 Аватар для I can
5009 / 4816 / 852
Регистрация: 13.04.2015
Сообщений: 10,080
18.10.2021, 11:22
Цитата Сообщение от Alimov97 Посмотреть сообщение
Может быть сумею найти код полегче!
А этот разве сложный? Ладно, удачи в поисках !
0
0 / 0 / 0
Регистрация: 22.09.2021
Сообщений: 28
18.10.2021, 15:21  [ТС]
I can ,

ну может быть не сложный для других, для меня, как можно понять по комментариям в коде, сложноват! ))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2021, 15:21

Передача фокуса определенной ячейке
Какой код написать в кнопке чтобы перемещаться в определенную ячейку определенного листа? Вот так не работает: Private Sub...

Можно ли передать фокус определённой ячейке?
Доброго времени суток. У меня три вопроса связанные с DataGridView: 1. Можно ли передать фокус определённой ячейке? 2. Можно ли...

Поиск определенной части текста в ячейке
Добрый день, уже сломал голову в попытке решить проблему есть 4 прайса поставщиков, у них меняются цены и наличие (нужно обновить) ...

Подсчет количества кликов в определенной ячейке
Здравствуйте! Текущая ситуация: есть табличка Excel с 7 блоками. Возле каждого блока есть две цветных ячейки: красная и зелёная. Справа...

DataGridView - в определенной ячейке сделать ComboBox
Решение: DataGridViewComboBoxCell cb = new DataGridViewComboBoxCell(); cb.Items.Add(&quot;1&quot;); cb.Items.Add(&quot;2&quot;); dataGridView2 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru