工具介绍
- Python版本为python3.4,不选2.7版是因为蛋疼的编码问题,你懂的。
- Requests获取网页源码。
- XPACH获取需要采集的内容,本文使用的规则很简单,都是些入门的知识。
- Chrome用来分析、查看网页源码。
- Pycharm(非必须),Python代码编写调试。
准备工作
分析网页,找到入口
首先打开Chrome,我们来到 妹子图首页,随便瞄了几下发现网页很有规则的样子,当我点开每日更新时,激动的热泪盈眶啊,站长真是好人啊!所有数据都做成了列表,也一目了然。
爬取数据
查看源码发现页面地址都包含在 <p class="url"> 标签下面对应的XPATH规则可以这样写:'//p[@class="url"]/a/@href'
运行下代码试试
得到预期的结果:
下面我们就开始爬图片了。这里有个小坑就是每一页只有一个张图片。我们可以先获取总页数,然后循环爬取图片。
页码部分的代码为:
图片地址的代码:
对应图片数量的XPATH规则为 '//div[@class="pagenavi"]'//a/span/text()
图片地址为 //div[@class="main-image"]/img/@src
标题为 //div[@class="main-image"]/img/@alt
整理一下对应的获取图片地址的代码就是:
运行一下代码瞧瞧,看看妹子到碗里来没?
WTF,什么鬼?看来网管做了反爬虫处理。requests页面时加个headers参数试试。
修改下获取图片部分代码 p = html.fromstring(requests.get(jpg_url_).content) 为 p = html.fromstring(requests.get(jpg_url_,headers=header(jpg_url_)).content)
再试试看效果,妹子果然到碗里来了。
完整的代码: