Есть ли способ использовать для l oop с 2 переменными в python? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытался очистить данные с веб-сайта, но безуспешно. Я запустил тесты в терминале и, похоже, у меня нет проблем с запуском команды l oop для печати одного списка. Проблема возникает, когда я пытаюсь использовать 2 переменные в для l oop. Я пытался использовать zip, но, похоже, он не работает. Поскольку я не знал, как использовать zip, я проверил другие страницы в StackOverflow, но, похоже, с моим делом ничего не работает. Вот код, который я придумал:

browser = webdriver.Chrome("C:\webdrivers\chromedriver.exe")
browser.get("https://www.worldometers.info/coronavirus/")
countries = browser.find_elements_by_tag_name("mt_a")
cases = browser.find_elements_by_tag_name("sorting_1")
[print(i.text, '-', j.text) for i, j in zip(countries, cases)]

Когда я попытался запустить программу как из своей IDE, так и из терминала, ничего не произошло. Может кто-нибудь помочь мне решить эту проблему? Вся помощь оценена.

Ответы [ 2 ]

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

Вам, вероятно, нужно использовать метод find_element_by_class_name вместо find_elements_by_tag_name.

Вот некоторые части HTML из https://www.worldometers.info/coronavirus/ страницы

<td style="font-weight: bold; font-size:15px; text-align:left;">
  <a class="mt_a" href="country/us/">USA</a>
</td>
...
<td style="font-weight: bold; text-align:right" class="sorting_1">1,049,431</td>

Теги: td, a

Классы: mt_a, sorting_1

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

Сначала вы должны проверить более простые данные, такие как list1 = ['a', 'b'] и list2 = [11, 22].

Как насчет:

list1 = ['a', 'b']
list2 = [11, 22]
for i, j in zip(list1, list2):
    print(i, j)

Тогда я не уверен в том, что вы ожидаете с печатью внутри списка?

foo = [print(i, j) for i, j in zip(list1, list2)]
print('foo =', foo)

возвращает следующее:

a 11
b 22
foo = [None, None]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...