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:]
相关文章推荐
- 添加和处理动作(Adding and Handling Actions)
- Bestcoder #80 题解 (待补)
- MVC和MVP的梳理
- hbase0.98.9 Export工具使用
- fopen、open、popen
- 搭建Hadoop分布式
- 手摘
- Git学习笔记(0)-错误汇总
- 学习进度表第七周
- (MFC)CFont部分字体无法使用的问题
- 44.leetcode题目:268. Missing Number(位操作没想到)
- enabled_shared_from_this
- Eclipse或MyEclipse修改生成类注释模板
- (LeetCode 202) Happy Number
- Http协议
- 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作
- 【UVA1378】A Funny Stone Game (博弈-求SG值-输出方案)
- 20145221 《Java程序设计》实验报告二:Java面向对象程序设计
- 20145213《Java程序设计》第七周学习总结
- ping的实现和代码分析