一起用代码吸猫吧-Python爬取猫咪图片 一、网站分析 二

一起用代码吸猫!本文正在参与【喵星人征文活动】

一、网站分析

爬取图片的网站地址:www.ivsky.com/

1、首先,打开网站,在搜索框输入关键词,我们可以发现,图片数据是分页的,我们可以动态爬取多页数据。

image.png

2、查看浏览器搜索框网址,我们可以发现我们将网址中的“猫”替换成其他任意,就可以获取我们想要的任意主题的图片,当然前提是该网址的服务器存在这些主题的图片。

image.png

3、之后单击快捷键Ctrl+Shift+I,打开开发者工具。

4、然后鼠标右键单击任意一张图片,点击检查,我们可以发现下图中的img标签中的href属性包含每一张图片真正的下载地址,这就是我们最终要匹配的内容。

image.png

二、代码实践

1、根据搜索框主题“猫”,获取该主题相关的网页。

(1)设置请求头

1
2
3
python复制代码headers = { 
"Connection": "close", 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}

(2)设置关键词

1
2
3
4
python复制代码kw = {
"q": picDes,
"page": 1
}

(3)发送请求

1
2
python复制代码url = "https://www.ivsky.com/search.php" 
response = requests.get(url, headers=headers, params=kw)

2、通过上一步获取的网页内容,结合正则表达式,匹配每一页的每张图片的下载地址。

(1)匹配每张图片的下载地址的正则表达式

1
python复制代码picUrls = re.findall('<div class="il_img pic_box"><a href=.*?><img src="(.*?)" alt=.*?></a></div>', html)

(2)下一页索引的正则表达式

1
python复制代码nextUrl = re.findall('<a class="page-next" href="(.*?)">下一页</a>', html) nextPage = nextUrl[0].split("=")[-1]

3、通过上一步获取的图片的下载地址的列表,下载图片到本地。

1
2
3
python复制代码with open(filePath + "/" + str(i + 1) + ".jpg", "wb") as f: 
print(filePath + "/" + str(i + 1) + ".jpg")
f.write(res.content)

三、数据爬取结果

结果如下图:

image.png

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%