文档章节

用python写一个美女图片爬虫

天之妖星
 天之妖星
发布于 2017/05/08 14:24
字数 682
阅读 22
收藏 2

介绍

最近无聊学了一下python,决定打算用python写一个爬虫,既然要写爬虫,就写一个美女爬虫,养眼,哈哈..你们懂的

准备阶段

  1. 首先我们必须先找到一个有美女的网站,这里我以7kk网站为例子,
    进入首页之后,我们在搜索栏里输入”美女”,然后点击搜索,之后往下拉,点击第二页,这时候看浏览器的地址http://www.7kk.com/search?keyword=美女&page=2
  2. 然后再点击下一页,我们发现链接的地址都是类似于http://www.7kk.com/search?keyword={keyword}&page={page},
    其中{keyword}为搜索的关键字,{page}为页数
  3. 在chrome浏览器中按f12,然后选中其中任意一张图片,
    这里写图片描述
    其中图片的地址为http://pic.7kk.com/simg/1/219_600/b/c1/101f190547c9f7ea08700c6e6f38d.jpg,但是我们发现这张图片是缩放图,我们要的是大图,小图清晰图不够,哈哈….
  4. 我们点击一下图片,进入http://www.7kk.com/picture/2786221.html这个地址其实就是上个截图a标签的href,那么我们就可以通过正则获取到大图的链接
  5. http://www.7kk.com/picture/2786221.html我们再按F12查看一下大图的链接
    这里写图片描述,其中http://pic.7kk.com/simg/1/995_0/b/c1/101f190547c9f7ea08700c6e6f38d.jpg这个链接正是我们想要的地址
  6. 准备工作已经做好了,现在开始编码,代码已经放在github上,有需要的自行下载

代码解析

from urllib import request
import re
import os
base_html = 'http://www.7kk.com'
searchPath = '/search?keyword='
keyword = u'美女'

yeshu = 20
path = "e:\\meinv\\美女"


def save_pic(pics):
    """保存图片"""
    for p in pics:
        fileName = path + os.sep + p.split("/")[-1]
        if not os.path.exists(fileName):
            with open(fileName, "wb") as fp:
                print("正在保存:", fileName)
                fp.write(request.urlopen(p).read())


def parse_hrefs():
    for i in range(1, yeshu + 1):
        # url = base_html + searchPath.replace('page', str(i))
        url = (base_html + searchPath + request.quote(keyword.encode("UTF-8"))) + '&page=' + str(i)
        print("解析:",url)
        page = request.urlopen(url)
        html = page.read().decode('UTF-8')
        hrefs = re.findall('a href="(/picture/.*?html)"', html, re.S)
        print("解析到的hrefs:", hrefs)
        parse_pics(hrefs)


def parse_pics(hrefs):
    for url in [base_html + item for item in hrefs]:
        page = request.urlopen(url)
        print("解析:", url)
        html = page.read().decode('UTF-8')
        # pics.extend(re.findall('a target="_blank" href="(.*?jpg)" class="downpic">下载原图</a>', html, re.S))
        pics = re.findall(r'<img src="(http[^\"]*?jpg)" alt=".*?">', html, re.S)
        print("解析的图片url:", pics)
        save_pic(pics)


def main():
    if not os.path.exists(path):
        os.mkdir(path)
    parse_hrefs()


if __name__ == '__main__':
    main()

www7kkcom.py

这个程序主要用于爬取www.7kk.com这个网站的图片

全局变量介绍

  1. base_html 7kk首页网址
  2. searchPath 查询路径
  3. keyword 查询的关键词
  4. yeshu 查询查询的页面
  5. path 本地存图片的路径

爬虫的完整路径

http://www.7kk.com/search?keyword={keyword}&page={page}

运行

python www7kkcom.py


打赏

如果觉得我的文章写的好的话,有钱就捧个钱场,没钱就给我点个赞
微信打赏2元支付宝打赏2元

© 著作权归作者所有

天之妖星
粉丝 1
博文 30
码字总数 58258
作品 0
深圳
高级程序员
私信 提问
如何用Python获取今日头条上面三千美女图,且看教程

我们的学习爬虫的动力是什么? 有人可能会说:如果我学好了,我可以找一个高薪的工作。 有人可能会说:我学习编程希望能够为社会做贡献(手动滑稽) 有人可能会说:为了妹子! ..... 其实我们...

Python新世界
2018/08/06
0
0
使用python进行数据的采集 编辑 删除

搞了十多年的程序,最近转行做网站,经过一番的调查研究,最终选择了美女图片站http://www.gg4493.cn。 这就带来了一个问题,必须要到网站各大美女站点进行图片采集,之前都是采用java进行数...

yangjiyue0520
2017/11/02
0
0
分手后,小伙怒用Python爬取上万空姐照片,赢取校花选举大赛!

首先展示下Python爬取到的成果:   我做什么都要争第一,这次的校花投票选举大赛也不例外,虽然我是个男的......但是我看到了前女友竟然已经有三百多票排到第三名了,我怎么能眼睁睁的看着...

p柯西
2018/06/12
0
0
趁头发还未掉光,记录一次利用Python抓取相亲网站的美女信息!

背景: 老妈天天像催债一样催我娶媳妇,有没有对象呀,头都快秃完了,没对象赶紧回来相亲吧..... 都是乡里乡亲的,叫我怎么好意思相亲,每次都是简单的应付几句,最近无意中看到了一些相亲网...

Python新世界
2018/07/26
0
0
教你如何用Python获取今日头条上面三千美女图

我们的学习爬虫的动力是什么? 有人可能会说:如果我学好了,我可以找一个高薪的工作。 有人可能会说:我学习编程希望能够为社会做贡献(手动滑稽) 有人可能会说:为了妹子! ..... 其实我们...

Python燕大侠
2018/08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
4
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
4
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
11
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
5
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部