准备开个基于yoloV8图像识别(识别原神角色)的坑,本篇是第一步数据准备,知乎上也在同步更,大家有兴趣可以看看
第二篇:CSDN
第三篇:yolo图像识别教程 - 以原神人物识别为例(3)-CSDN博客
第四篇:yolo图像识别教程 - 以原神人物识别为例(4)-CSDN博客
第五篇:yolo图像识别教程 - 以原神人物识别为例(5)-CSDN博客
一、数据准备
爬取bing关于原神的图片链接,界面如下
(一)依赖的pip包
本教程不是爬虫教程,因此直接使用微软的playwright来爬取
下载很慢的话可使用清华源,使用方式见官方文档: pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
pip install playwright
playwright install
(二)爬取图片链接,自动下拉滚动条,爬取图片链接,写入txt中,大概能有330条大图链接(bing分为大图链接和小概要图链接,本次只处理大图)
import json
import os
import time
from playwright.sync_api import sync_playwright
start_url = 'https://cn.bing.com/images/search?q=原神'
step = 2000
visit_times = 15
sleep_time = 3
with sync_playwright() as p:
browser = p.chromium.launch(channel='chrome', headless=False) # headless是否开启无头模式
page = browser.new_page()
page.goto(start_url)
# 循环下拉滚动条,得到浏览器解析后的代码
urls = []
for i in range(0, visit_times):
print(f"---{i}次滚轮---")
page.mouse.wheel(0, step * i)
# 得到浏览器内存中的代码
browser_code = page.content()
# 得到图片,bng分为大图模式和小图模式,本次仅处理大图
big_imgs = page.query_selector_all("div.imgpt > a.iusc")
small_imgs = page.query_selector_all("img.mimg")
for img in big_imgs:
img_url_str = img.get_attribute("m").strip()
a_dict = json.loads(img_url_str)
img_url = a_dict.get("murl").strip()
if img_url.startswith("http://") or img_url.startswith("https://"):
if img_url not in urls:
urls.append(img_url)
time.sleep(sleep_time)
with open("url_big_img.txt", 'w', encoding='utf-8') as f:
for one_url in urls:
f.write(one_url + "\n")
page.wait_for_load_state(state='load') # 等待全部资源加载完毕
browser.close()