XMLHTTP-запрос:
Я хотел бы отойти от этого и избежать дополнительных затрат на использование браузера.
Сделать первоначальный запрос GET xhr к http://dgftebrc.nic.in:8100/BRCQueryTrade/brcIssuedTrade.jsp
и извлеките JSESSION
cook ie (вы, вероятно, можете использовать .getResponseHeader("Set-Cookie")
), затем сделайте последующий запрос POST xhr к тому же URL, но предоставьте cook ie в заголовках запроса и в теле, чтобы убедиться, что вы передаете соответствующий параметр значения.
Требуемые значения параметров:
data = {
'iec': '0906008051',
'sno': '3929815',
'billid': '',
'brcstat': 'A',
'captext': 'a7m3p',
'B1': 'Show Details'
}
В VBA тело POST для .send body
будет выглядеть следующим образом:
"iec=0906008051&sno=3929815&billid&brcstat=A&captext=a7m3p&B1=Show Details"
Где iec
и sno
являются динамическими c, и вы бы объединяли в тело каждого запроса, возможно, в oop.
"iec=" & iec & "&sno=" & sno & "&billid&brcstat=A&captext=" & capText & "=Show Details"
Если капча меняется, вы можете предложить пользователю ввести значение для captext
param и передать его в теле.
Не думайте, что вам нужно больше Заголовки требуются, хотя вы можете добавить user-agent
например
.setRequestHeader "User-Agent" , "Mozilla/5.0"
Подробнее о запросах xmlhttp (XHR) здесь или Google (введите следующее в поиске bar vba jsession cookie
и нажмите enter).
Ответ на запрос POST будет содержать html, в котором находятся желаемые таблицы.
Selenium :
Если вы хотите sh продолжить работу с Selenium и предположить, что вы включили кнопку Show Details
с вашими предыдущими действиями, вы можете использовать следующий атрибут = селектор значений:
bot.FindElementByCss("[value='Show Details']").click