【发布时间】:2019-04-28 03:36:43
【问题描述】:
我正在使用 python 3.6 中的硒和美丽的汤。我正在尝试单击页脚或页面中列出的页面。每次我单击页脚中的数字时,都会转到下一页。然后我从元素中抓取一些数据并将其添加到列表中。下面的代码一切正常,直到我点击 8,其中下一个跨度只包含“...”而不是数字。您必须单击“...”,然后在页脚中添加更多数字。任何有关如何处理此问题的提示将不胜感激。
代码:
soup = BeautifulSoup(driver.page_source)
emptLst=[item['href'] for item in soup.select('a.job-card-search__link-wrapper')]
for i in range(int(round(503/14))):
driver.find_element_by_css_selector('[aria-label="Page '+str(i+1)+'"]').click()
LnkLst = [item['href'] for item in soup.select('a.job-card-search__link-wrapper')]
emptLst+LnkLst
time.sleep(3)
页面来源:
<section class="search-results-pagination-section">
<artdeco-pagination class="artdeco-pagination pv5">
<!---->
<ul class="artdeco-pagination__pages artdeco-pagination__pages--number">
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number active selected">
<span>1</span>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 2" data-ember-action="" data-ember-action-255="255">
<span>2</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 3" data-ember-action="" data-ember-action-258="258">
<span>3</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 4" data-ember-action="" data-ember-action-261="261">
<span>4</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 5" data-ember-action="" data-ember-action-264="264">
<span>5</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 6" data-ember-action="" data-ember-action-267="267">
<span>6</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 7" data-ember-action="" data-ember-action-270="270">
<span>7</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 8" data-ember-action="" data-ember-action-273="273">
<span>8</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number">
<button data-ember-action="" data-ember-action-276="276" data-is-animating-click="true">
<span>…</span>
</button>
</li>
<li class="artdeco-pagination__indicator artdeco-pagination__indicator--number ">
<button aria-label="Page 23" data-ember-action="" data-ember-action-279="279">
<span>23</span>
</button>
</li>
</ul>
<!----></artdeco-pagination>
</section>
【问题讨论】:
-
可以分享一下网址吗?下面给出的答案可能是一种方法。通常,当您靠近省略号 (...) 时,分页上的编号会更新,因此您可能需要考虑这一点。如果有下一步按钮,您可以单击该按钮,直到达到已知页数。
标签: python-3.x selenium beautifulsoup selenium-chromedriver