Python3 大型网络爬虫实战 003 — scrapy 大型静态图片网站爬虫项目实战 — 实战:爬取 169美女图片网 高清图片

本文介绍了如何使用Python3和Scrapy框架爬取169美女图片网站上的西洋美女高清图片。通过分析网页结构,制定了爬取策略,包括获取所有页面链接、解析图片URL并下载。同时,文章涉及了防反爬技术和图片下载过程中的问题处理。
摘要由CSDN通过智能技术生成

原博文链接:http://www.aobosir.com/blog/2016/12/26/python3-large-web-crawler-169bb-com-HD-beautiful-pictures/


开发环境

  • Python第三方库:lxml、Twisted、pywin32、scrapy
  • Python 版本:python-3.5.0-amd64
  • PyCharm软件版本:pycharm-professional-2016.1.4
  • 电脑系统:Windows 10 64位

如果你还没有搭建好开发环境,请到这篇博客


  • 本篇博客源代码GitHub里:这里

这一篇博客的目的是爬取 169美女图片网 里面的所有的“西洋美女”的高清图片。

Alt text


爬虫程序设计思路:

1 . 先得到 http://www.169bb.com/xiyangmeinv/ 页面里面所有的照片后面对应的URL网页链接()。

2 . 接着在得到的URL链接网页里面得到里面所有高清图片的下载地址,进行下载。

3 . 得到所有 “西洋美女” 网页的页数。

Alt text


观察网页 和 网页源代码

1 . 打开 169美女图片网:http://www.169bb.com/

2 . 我们的目的是爬取这个站点里面所有 “西洋美女” 的高清图片。所以点击进入“西洋美女” 标签里。(http://www.169bb.com/xiyangmeinv/

Alt text

3 . 观察这个页面,在页面最下面,显示了,当前一共311页。

Alt text

4 . 我们再来观察每页的网址有什么共同点,我们发现:第2页的网站是:http://www.169bb.com/xiyangmeinv/list_4_2.html;第3页的网址是:http://www.169bb.com/xiyangmeinv/list_4_3.html;而第1页的网站是:http://www.169bb.com/xiyangmeinv/list_4_1.html

这样每页的网址是有规律的,按照这个规律,我们可以推测出“西洋美女” 的第120页的网址就应该是:http://www.169bb.com/xiyangmeinv/list_4_120.html。事实的确是这样的。好。

5 . 现在,我们随便点击一个图片,进去看看这个美女的高清图片集。

里面都是高清的图片,并且有很多,并且,不止一页。就我随机点击的这个美女的链接就有11页,并且一页里面有5张左右的高清图片。

Alt text

6 . 并且它的每页的网址也是有规律的。

第2页是:http://www.169bb.com/xiyangmeinv/2016/1117/37333_2.html
第3页是:http://www.169bb.com/xiyangmeinv/2016/1117/37333_3.html
第1页是:http://www.169bb.com/xiyangmeinv/2016/1117/37333.html

但是有的美女的网址里只有一页,比如这个:http://www.169bb.com/xiyangmeinv/2016/0103/5974.html


好了,现在这个目标网页,我们已经分析完了。现在就可以编程。


写程序

源代码GitHub里:这里

接下来我们为大家讲解大型图片爬虫项目编写实战。

Step 1 .

创建一个Scrapy爬虫项目:

scrapy startproject secondDemo

Alt text

创建一个scrapy爬虫文件,我们就在这个文件里面写爬取目标网站里面图片的爬虫程序。

cd secondDemo
scrapy genspider -t basic pic_169bb 169bb.com

Alt text


PyCharm 软件打开刚刚创建的 secondDemo 工程。

Alt text

Step 2 . items.py 文件里面的SeconddemoItem()函数里面创建一个对象,这个对象在其他的文件里面会使用到。

Alt text

Step 3 . 现在开始爬虫的编写。进入pic_169bb.py文件。

爬虫(pic_169bb.py文件)会自动的先爬首页(http://169bb.com/),爬完首页之后,会自动的进入parse()回调函数。

这个回调函数中,我们需要写些东西。

先获取所有栏目的名字和地址。

Alt text

查看源代码:

Alt text

pic_169bb.py 文件中的 parse()回调函数中添加下面的代码:

        urldata = response.xpath("/html/body/div[@class='header']/div[@class='hd_nav']/div[@class='w1000']//a/@href").extract()
        print(urldata)

Alt text

现在运行一下,输出:

Alt text


继续进行下一次的爬取:

先导入一个模块

from scrapy.http import Request

爬取子栏目的第一页,即西洋美女网址的第一页。

        xiyangurldata = urldata[4]  # 获取西洋美女首页网址
        print(xiyangurldata)
        yield Request(url=xiyangurldata, callback=self.next)

    def next(self, response):
        pass

Alt text

    def next(self, response):
        page_title_list = response.xpath("/html/body//div[@class='w1000 box03']/ul[@
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此源码为了缩减内容不带任何图片数据,请搭建后自己采集或者录入,采集不会的话可以百度找一下采集教程,,也可以直接去淘宝上找做采集的,价格也不是很贵! 本帖资源标签:WordPress自适应图片主题,主题模板,带会员积分下载系统 分类和标签添加筛选功能; 列表增加用户自定义排序功能,支持点赞和浏览数量排序; 优化二级菜单和三级菜单的css样式; 支持会员功能和用户中心模板; 支持第三方快速登陆(QQ和新浪); 新增单图模式,全新的图片浏览模式; 新增登陆、注册、找回密码三合一页面模板; 新增文章点赞排行榜页面; 新增AJAX列表加载功能; 新增广告投放面板; 支持点卡充值和点卡生成功能; 支持积分签到功能; 支持评论和投稿奖励积分功能; 支持积分开通会员功能(目前内置3个级别的会员); 支持积分下载资源和免费资源下载; 支持vip免费资源添加; 新增下载资源管理员和作者查看下载次数和校验资源功能; 支持文章前台投稿功能; 支持前台开启相对地址和绝对地址切换功能; 新增图片自动分页功能; 新增图片分页浏览模板; 新增后台列表显示缩略图和封面图片功能; 全新的SEO功能; 新增文章收藏功能; 新增文章顶踩功能(踩的按钮目前只在单图模式显示); 新增图片预加载功能; 幻灯片支持外链和自定义大图; 源码测试环境推荐php5.2/5.3/5.4Mysql 安装说明: 上传文件拿到网站根目录,直接安装即可,附带wordpress。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值