Как получить значение в скрипте, который не имеет имени класса? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь собрать информацию с веб-сайта с помощью Selenium.

Ниже приведен фрагмент кода html:

<script>
  window.RI.storeId = "1";    
</script>

Как получить значение «1» несмотря на отсутствие имени класса?

1 Ответ

0 голосов
/ 07 апреля 2020

Используйте find_elements_by_tag_name(), затем повторите и проверьте, что element.get_attribute("textContent") содержит window.RI.storeId, а затем выполните некоторые манипуляции со строками. Вы также можете использовать некоторое регулярное выражение.

elements=driver.find_elements_by_tag_name("script")

for element in elements:
    if "window.RI.storeId" in element.get_attribute("textContent"):
        scripttext=element.get_attribute("textContent")
        break

print(scripttext.split('"')[1])

Если вы хотите чтобы использовать регулярные выражения, вам нужно импортировать re.

import re

elements=driver.find_elements_by_tag_name("script")

for element in elements:
    if "window.RI.storeId" in element.get_attribute("textContent"):
        scripttext=element.get_attribute("textContent")
        break
print(re.findall("[window.RI.storeId\s=\s\"]\d{1}",scripttext)[0].split('"')[-1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...