还没有看饱网络美女,轻松教你使用python爬虫爬取网络美女图片,让你一次看过瘾

前言

还在去网站上找网络美女看嘛,却发现网站上找到的并不是特别好看,而且比较模糊,下面教你们如何用爬虫去爬取网络美女图片。

一、准备工作
安装requests库(用于请求静态页面)

pip install requests -i https://mirrors.ustc.edu.cn/pypi/web/simple

安装lxml库(用于解析html文件)

pip install lxml -i https://mirrors.ustc.edu.cn/pypi/web/simple

安装与配置selenium(用于请求动态页面)

pip install selenium -i https://mirrors.ustc.edu.cn/pypi/web/simple

selenium 需要与浏览器配合使用,在以前的爬虫教程中,往往把 selenium 和 PhantomJS 配合使用,PhantomJS 是一款无界面的浏览器,能否执行js脚本,从而可以实现加载和渲染动态页面。但是由于最新版 selenium 已经不再支持 PhantomJS,所以必须使用其他浏览器代替,本教程使用的是Firefox浏览器,Firefox浏览器也支持无界面模式( headless模式 ),用于爬虫非常方便。另外Chrome也是支持的。详细的安装与配置教程请参考:

Python爬虫利器五之Selenium的用法

二、页面分析
打开妹子图页面,如下图。页面的正文部分列出了33个美女图集。每个页面共有33个图集,总共有33个页面,所以总共有1089个图集。图片的链接就包含在每个图集中。
妹子图

在页面上单击右键,选择 审查元素按键,或直接按 F12进入调试模式。页面结构如下:
在这里插入图片描述
妹子图
妹子图

点进任意一个图集中,进入调试模式,可以看出页面结构如下
妹子图

源码详解
从前面的页面分析中可以看出,这个网站的页面结构其实很简单,我们只需要依次打开第1到第33个页面,得到每个页面的html源码,然后从html源码中提取出每个页面上包含的图集的链接列表(共33个),然后再依次打开第1到第33个图集详情页面,但是图集详情页面中的图片列表是用js动态加载的,我们需要使用selenium加载这个动态页面,等该页面加载完毕之后再得到该页面的html源码,然后从图集详情页面中提取出每张图片的链接,最后再依次下载每张图片保存即可。
整个流程其实并不复杂。

使用requests下载静态html页面
该函数用于下载图集列表页面,这个页面是静态的,可以直接通过 requests.get(url) 函数抓取。但是有一点需要注意,为了把我们的爬虫伪装成正常的浏览器请求,避免我们的爬虫被服务器禁止,我们需要给 requests 添加http请求头,其中包含伪造的 User-Agent 浏览器标识

如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:688244617

def download_page_html(url):
    phtml = None

    try:
        requests_header["User-Agent"] = random.choice(user_agent_list) # 选择一个随机的User-Agent
        # print(requests_header)
        page = requests.get(url=url, headers=requests_header) # 请求指定的页面
        # print(page.encoding)
        page.encoding = "gb2312" # 转换页面的编码为gb2312(避免中文乱码)
        phtml = page.text # 提取请求结果中包含的html文本
     
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值