用python写一个美女图片爬虫

介绍

最近无聊学了一下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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值