Python爬虫系列(五)360图库美女图片下载

这几天终于忙完毕设和学校的事情,终于有时间来写Python了(( ̄▽ ̄)~*)。前些天在群里看到有人讨论这个360美女图库 的爬取。自己今天也尝试下(蛮简单)。

因为这个网站是下拉到底底部,图片就会加载进来,所以自己想用Seleniu+PhantomJS来做,后来分享doc源代码并没有我们想要的图片信息,后来发现是js请求的数据,找到数据请求的地址,自己发现每次,下拉都会加载30张图片,所以自己将请求的其实图片张数每次加30(其实也就是模拟下拉动作,所以分析网站很重要,怎么省事怎么来吧O(∩_∩)O)下面是爬取过程和详情。

一、分析网站,找到目标的数据并分析img

首先打开开发者工具,找到network选项卡里下的doc,我们看下有没有想要的图片的src地址?


1531909-67000632d200565e.png
发下并没有我们要的信息

接着看我们可以看到底部srcipt,id=“initData”,通过这个id名字来看,就是初始打开这个网页的时候回默认加载30张美女图片

1531909-ca4490b1dd66995b.png
初始数据

然后打开network下的all选项,我们下拉浏览器,会发现下面有规律的请求地址:

(没错,这就是目标的数据请求地址,格式也是json)

1531909-c0fc15adfd1255c8.png
ch=beuaty代表美女分类,sn={}代表每次请求30张
1531909-f444228f1c6ad912.png
img的src为qhimg_url : "http://p0.so.qhimgs1.com/t01ac9283f4ba213c3c.jpg"

(ps:json的数据提取qhimg_url很简单了,和上一篇DOTA排行榜思路差不多)

1531909-00f139c1aecdd224.png
json格式化工具(看的舒服些)

我上传了:格式化工具下载 

二、编写代码,下载图片并存到相应路径

这里自己使用urllib库中的一个函数urlretrieve()保存图片(很方便,很强大),然后保存的图片名称就是请求地址里的图片名称。

1531909-4d33ae88e0d20226.png

1531909-17daa32858589965.png
下载保存图片

源码地址 

三、总结

整体思路简单,但是这个程序有改善的地方,比如可以获取其他分类的图片

1531909-ad089a5bc823c1fa.png
分类

那就将beauty替换成其他字段的分类字段。还有一个就是,可以尝试多线程下载,这儿离的思路是下拉动作完成之后,获取到所有src地址之后,再去执行的下载,可以尝试下边下拉边下载。


(ps:加一张美女图片:ψ(*`ー´)ψ)

1531909-8fee5c0ba30c6235.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Python爬虫下载图片,可以按照以下步骤进行操作: 步骤一:导入所需Python中,可以使用requests、BeautifulSoup和selenium来实现下载图片的功能。你可以使用以下代码导入这些: ```python import requests from bs4 import BeautifulSoup from selenium import webdriver ``` 步骤二:获取图片链接 要下载图片,首先需要获取要下载图片的链接。可以使用requests或selenium来获取页面中的图片链接。例如,使用requests可以使用以下代码获取百度图片的链接: ```python url = 'https://www.baidu.com/images' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') image_tags = soup.find_all('img') image_urls = [tag['src'] for tag in image_tags] ``` 步骤三:下载图片 获取到图片链接后,可以使用requests的get()方法来下载图片。以下是一个示例代码: ```python def download_image(url): img_name = url.split("/")[-1] headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) with open(f'{img_name}', 'wb') as f: f.write(response.content) for image_url in image_urls: download_image(image_url) ``` 这段代码首先定义了一个`download_image`函数来下载图片。然后,使用循环遍历所有图片链接,并调用`download_image`函数来下载每个图片。 总结起来,使用Python爬虫下载图片的步骤包括导入所需、获取图片链接和下载图片。可以根据实际需求进行相应的调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值