打开Python爬虫实战练习页面无序号翻页_E03_Spiderbuf,可以看到页面很简单,内容是《2021胡润中国500强》排行榜,总共有5页。点击一下翻页,发现浏览器地址栏中并没有出现以往翻页的页面,取而代之的是一串字符串。
在网页上右键 -> 网页源码,往下滚动查找翻页的HTML代码,或者在开发者工具(F12)直接通过光标选中页面翻页区域,得到以下的代码。
<nav aria-label="Page navigation">
<ul class="pagination">
<li><span>共5页</span></li>
<li><a href="/playground/e03/2fe6286a4e5f">1</a></li>
<li><a href="/playground/e03/5f685274073b">2</a></li>
<li><a href="/playground/e03/279fcd874c72">3</a></li>
<li><a href="/playground/e03/8a3d4d640516">4</a></li>
<li><a href="/playground/e03/fbd076c39d28">5</a></li>
</ul>
</nav>
翻页代码是固定的链接,这种情况也好处理。一般使用这种方式是为了避免直接通过数字直接遍历所有分页,必须爬取到最后一页才会出现新翻页链接,能够在一定程度上降低爬虫的访问频率。
html = requests.get(base_url, headers=myheaders).text
root = etree.HTML(html)
print(html)
# <li><span>共5页</span></li>
# <li><a href="./2fe6286a4e5f">1</a></li>
# <li><a href="./5f685274073b">2</a></li>
# <li><a href="./279fcd874c72">3</a></li>
# <li><a href="./8a3d4d640516">4</a></li>
# <li><a href="./fbd076c39d28">5</a></li>
ls = root.xpath('//ul[@class="pagination"]/li/a/@href')
print(ls)
完整示例代码:示例代码