爬虫 取得站内最大页数

来源:互联网 发布:avast淘宝激活 编辑:程序博客网 时间:2024/05/16 12:46
<li class="l_pager pager_theme_4 pb_list_pager"><span class="tP">1</span><a href="/p/4245039489?pn=2">2</a><a href="/p/4245039489?pn=3">3</a><a href="/p/4245039489?pn=4">4</a><a href="/p/4245039489?pn=5">5</a><a href="/p/4245039489?pn=6">6</a><a href="/p/4245039489?pn=7">7</a><a href="/p/4245039489?pn=8">8</a><a href="/p/4245039489?pn=9">9</a><a href="/p/4245039489?pn=10">10</a><a href="/p/4245039489?pn=2">下一页</a><a href="/p/4245039489?pn=19">尾页</a></li>


在尝试爬虫时,如何获得站内最大页数呢?即是上述xml代码中的19.


方法有如下几种:

第一:使用正则表达式

import relast_page_num = re.findall(r'<a href="/p/.*?pn=(\d+)">',first_html,re.S)print last_page_num[-1]

第二种:使用xpath方法

from lxml import etree#html指的是上述的xml代码selector = etree.HTML(html)print selector.xpath('//li[@class="l_pager pager_theme_4 pb_list_pager"]/a[last()]/@href')[0][-2:]

或者还可以这样:
from lxml import etree#html指的是上述的xml代码selector = etree.HTML(html)print selector.xpath(u'//li[@class="l_pager pager_theme_4 pb_list_pager"]/a[text()="尾页"]/@href')[0][-2:]




0 0