一起用代码吸猫!本文正在参与【喵星人征文活动】。
一、网站分析
爬取图片的网站地址:www.ivsky.com/
1、首先,打开网站,在搜索框输入关键词,我们可以发现,图片数据是分页的,我们可以动态爬取多页数据。
2、查看浏览器搜索框网址,我们可以发现我们将网址中的“猫”替换成其他任意,就可以获取我们想要的任意主题的图片,当然前提是该网址的服务器存在这些主题的图片。
3、之后单击快捷键Ctrl+Shift+I,打开开发者工具。
4、然后鼠标右键单击任意一张图片,点击检查,我们可以发现下图中的img标签中的href属性包含每一张图片真正的下载地址,这就是我们最终要匹配的内容。
二、代码实践
1、根据搜索框主题“猫”,获取该主题相关的网页。
(1)设置请求头
1 | python复制代码headers = { |
(2)设置关键词
1 | python复制代码kw = { |
(3)发送请求
1 | python复制代码url = "https://www.ivsky.com/search.php" |
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 | python复制代码with open(filePath + "/" + str(i + 1) + ".jpg", "wb") as f: |
三、数据爬取结果
结果如下图:
本文转载自: 掘金