您的位置:首页 > 其它

4000 爬虫 取得站内最大页数

2016-04-17 17:14 127 查看
<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 re

last_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:]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: