简介
在这里,我们将通过网络抓取介绍"如何一次在网络上保存图像"。
警告
如果受版权保护,或者在版权方面可以接受,但使用条款禁止刮scrap,则有可能要求赔偿损失,因此请确保您了解网络上的版权法和使用条款。刮。
目录
1.如何进行网页抓取
可以使用多种语言进行Web抓取,例如``Ruby'',``PHP''和``Javascript'',但是这次我将介绍使用Python的``Beautiful Soup''的方法。
2.实际保存图像
①用pip
安装beautifulsoup4
1 | pip install beautifulsoup4 |
②决定要进行网页抓取的网站
*这次,我们将下载" Irasutoya"的图像。
https://www.irasutoya.com/search/label/业务
③从列表页面
获取每个图像链接页面的URL。
1 2 3 4 5 6 7 8 9 10 11 | url = "https://www.irasutoya.com/search/label/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9" # 画像ページのURLを格納するリストを用意 link_list = [] response = urllib.request.urlopen(url) soup = BeautifulSoup(response, "html.parser") # 画像リンクのタグをすべて取得 image_list = soup.select('div.boxmeta.clearfix > h2 > a') # 画像リンクを1つずつ取り出す for image_link in image_list: link_url = image_link.attrs['href'] link_list.append(link_url) |
④获取图像文件的所有标签
1 2 3 4 5 | for page_url in link_list: page_html = urllib.request.urlopen(page_url) page_soup = BeautifulSoup(page_html, "html.parser") # 画像ファイルのタグをすべて取得 img_list = page_soup.select('div.separator > a > img') |
⑤一张一张地提取img标签,并获取图像文件的URL
1 2 3 4 5 | for img in img_list: # 画像ファイルのURLを取得 img_url = (img.attrs['src']) file_name = re.search(".*/(.*png|.*jpg)$", img_url) save_path = output_folder.joinpath(file_name.group(1)) |
⑥从图像文件的URL下载数据
1 2 3 4 5 6 7 8 9 | try: # 画像ファイルのURLからデータを取得 image = requests.get(img_url) # 保存先のファイルパスにデータを保存 open(save_path, 'wb').write(image.content) # 保存したファイル名を表示 print(save_path) except ValueError: print("ValueError!") |
这就是整个过程。
↓↓执行结果↓↓
3.提取流程
我认为想像步骤③至⑤有点困难,因此我创建了大致的提取流程。
另外,此资源已发布在Github上,因此请在下面参考。
https://github.com/miyazakikna/SaveLocalImageWebScraping.git
4.摘要
在这里,我解释了如何使用Python的美丽汤批量保存图像。
这次我获得了Irasutoya的图片,但是我认为您可以在其他站点上以相同的方式下载该图片,因此请使用它。
5.奖金
单击此处了解如何在下载图像后立即更改文件名↓↓
[工作效率]如何在Python
中重命名文件
6.参考
?让我们用Python抓取图像
通过网络抓取图像收集