Селен: переменные не изменяются даже после изменений импорта - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над проектом очистки веб-страниц, используя библиотеку селена, в которой мне нужно извлечь некоторые данные из некоторых таблиц.Как часть проекта, мне нужно перебрать строки таблицы и извлечь условие автора статьи, но это работает только для первой строки.Кажется, переменная сохраняет данные первой строки и не изменяется даже после каждой итерации.Это упомянутая часть моего кода:

div_result = driver.find_element_by_class_name("result-body-paper")
papers = div_result.find_elements_by_tag_name("tr")
papers_information = []
for paper in papers:
  data = paper.find_elements_by_tag_name("td")
  result_title = data[1].text

  author = paper.find_element_by_xpath('//span[@data-paper-person="{id}"]'.format(id=person_id))
  try:
    first_author = author.find_element_by_tag_name("i").get_attribute("class")
  except:
    first_author = ""
  author_condition = "Helper"
  if first_author != "":
    if "pencil" in first_author:
      author_condition = "First Writer"
    if "asterisk" in first_author:
       author_condition = "Orginal Writer"
    if "star" in first_author:
      author_condition == "Orginal Worker"
  papers_information.append([author_condition,result_title])
В отличие от того, что я ожидаю, каждый раз first_author и author совпадают с тем, что было в первом ряду таблицы.Однако другие части работают правильно и работают правильно.Это ошибка или что-то?Кстати, это часть HTML-кода, из которого я пытаюсь извлечь данные (просто состоит из двух строк таблицы):

<tr class="zarEn selectable">
  <td class="result row center" width="35">1</td>
  <td class="result title "><a href="...">Hepatic insulin resistance, metabolic syndrome and cardiovascular disease</a></td>
  <td class="result author zarsmallEn" width="200">
    <span data-paper-person="98155">
      <a href="...">
        <img src="..." class="person-avatar-mini">
          <i class="fa fa-fw fa-pencil crimson absolute"></i>
      </a>
    </span>
  </td>
  <td class="result source_title ">
    <a href="...">Clinical Biochemistry</a>
  </td>
  <td class="result source_cs">
    <a href="...">2.35</a>
  </td>
  <td class="result published_year center">2009</td>
  <td class="result citation center">217</td>
</tr>
<tr class="zarEn selectable">
  <td class="result row center">2</td>
  <td class="result title "><a href="...">Molecular and cellular mechanisms linking inflammation to insulin resistance and β-cell dysfunction</a></td>
  <td class="result author zarsmallEn">
    <span data-paper-person="14144442">
      <a href="...">
      <img src="...">
      <i class="fa fa-fw fa-pencil lightgray absolute"></i>
      </a>
    </span>
    <span data-paper-person="14137800">
      <a href="..."><img src="..."></a>
    </span>
    <span data-paper-person="98155">
      <a href="...">
      <img src="...">
      <i class="fa fa-fw fa-asterisk crimson absolute"></i>
      </a>
    </span>
  </td>
  <td class="result source_title ">
     <a href="...">Translational Research</a>
  </td>
  <td class="result source_cs">
    <a href="...">4.26</a>
  </td>
  <td class="result published_year center">2016</td>
  <td class="result citation center">71</td>
</tr>
Как видите, имя класса из двух "" отличается, но first_author получает первое и больше не меняется!
...