我必须从以下网址逐个单击每个搜索结果:
我首先从显示的文本中提取结果的总数,以便设置迭代的上限
upperlimit=driver.find_element_by_id("total_results")
number = int(upperlimit.text.split(' ')[0])
然后循环被定义为 对于范围(1,数字)中的i:
但是,在浏览完第一页上的前10个结果后,列表索引超出了范围(可能是因为没有更多的链接可单击)。我需要点击“下一步”来获得下10个结果,以此类推,直到我完成所有搜索结果。我该怎么做呢?
任何帮助都将不胜感激!
甚至不需要编程地按
Next
按钮,如果您看到carrely,则在浏览其他结果页时,url只需要一个新参数:如果您仍想按“下一步”按钮,可以使用:
但我还没有测试过。
问题是,id为
total_results
的元素的值在页面加载后发生更改,首先它包含117
,然后更改为44
。相反,这里有一个更稳健的方法。它一页一页地处理,直到没有剩余的页:
基本上,这里的想法是获得下一个页面链接,直到没有这样的链接为止(
NoSuchElementException
将被抛出)。注意,它可以用于任意数量的页面和结果。它打印:
相关问题 更多 >
编程相关推荐