ขูดและดาวน์โหลด Google รูปภาพด้วย Python
เผยแพร่แล้ว: 2023-01-02ความแพร่หลายที่เพิ่มขึ้นของการขูดเว็บได้เพิ่มพื้นที่การใช้งานอย่างมาก ปัจจุบันแอปพลิเคชัน AI จำนวนมากป้อนชุดข้อมูลการขูดเว็บด้วยข้อมูลล่าสุดเป็นประจำ มีการไหลเวียนของข้อมูลจากเว็บไซต์เป้าหมายไปยังชุดข้อมูลของแอปพลิเคชันปัญญาประดิษฐ์อย่างสม่ำเสมอและต่อเนื่อง
โพสต์ที่เกี่ยวข้อง: ผลกระทบของปัญญาประดิษฐ์ต่ออนาคตของความสำเร็จของลูกค้า
การประมวลผลภาพเป็นหนึ่งในส่วนที่ได้รับความนิยมมากที่สุดในแอปพลิเคชันปัญญาประดิษฐ์ การประมวลผลภาพเป็นสาขาวิชาวิทยาการคอมพิวเตอร์ที่มุ่งเน้นให้คอมพิวเตอร์สามารถระบุและเข้าใจวัตถุและบุคคลในภาพและวิดีโอได้ เช่นเดียวกับปัญญาประดิษฐ์ประเภทอื่นๆ การประมวลผลภาพมีจุดประสงค์เพื่อดำเนินการและทำงานอัตโนมัติที่จำลองความสามารถของมนุษย์ ในกรณีนี้ การประมวลผลภาพจะพยายามคัดลอกทั้งวิธีที่ผู้คนมองเห็นและวิธีที่พวกเขาเข้าใจสิ่งที่พวกเขาเห็น
ข้อมูลที่จำเป็นสำหรับการพัฒนาอัลกอริทึมและการลดระยะขอบของข้อผิดพลาดในหลายๆ ฟิลด์ โดยเฉพาะอย่างยิ่งในโครงการประมวลผลภาพ ได้มาจากเว็บสแครป ในบทความนี้ เราจะพัฒนาแอปพลิเคชันที่ใช้บ่อยในโครงการประมวลผลภาพ เราจะขูดและดาวน์โหลด Google รูปภาพด้วยภาษาโปรแกรม Python มาเริ่มกันเลย
การตั้งค่าโครงการ
ก่อนอื่นมาเปิดโฟลเดอร์บนเดสก์ท็อป มาเปิดเทอร์มินัลในพาธไฟล์นี้และติดตั้งไลบรารี่ที่จำเป็นโดยรันคำสั่งด้านล่าง
คำขอติดตั้ง pip bs4 |
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้สร้างไฟล์ชื่อ 'index.py' ในโฟลเดอร์
อ่านเพิ่มเติม: ChatGPT – ความหมายสำหรับธุรกิจ
รหัส
มาวางโค้ดต่อไปนี้ลงในไฟล์ 'index.py' ที่เราสร้างขึ้น
คำขอนำเข้า, re, json, urllib.request จาก bs4 นำเข้า BeautifulSoup ส่วนหัว = { queryParameters = {“q”: “marvel”, “tbm”: “isch”, “hl”: “en”, “gl”: “us”, “ijn”: “0” } target_image_path = “.isv-r.PNCib.MSM1fd.BUooTd” html = request.get(“https://www.google.com/search”, params=queryParameters, headers=headers, timeout=30) google_images = [] def scrape_and_download_google_images(): images_data_in_json = converter_image_to_json() matched_image_data = re.findall(r'\”b-GRID_STATE0\”(.*)sideChannel:\s?{}}', images_data_in_json) Remove_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) matched_ resolution_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, Remove_matched_thumbnails) full_ resolution_images = get_ressolution_image (matched_ resolution_images = matched_ resolution_images) สำหรับดัชนี (image_data, image_link) ในการแจกแจง (zip (soup.select (target_image_path), full_ resolution_images), start=1): append_image_to_list(image_data=image_data, image_link=image_link) พิมพ์(f'{index} เริ่มดาวน์โหลดรูปภาพ') download_image(image_link=image_link, ดัชนี=ดัชนี) พิมพ์(f'{index} ดาวน์โหลดรูปภาพสำเร็จ') พิมพ์(f'scraped and download images: {google_images}') def remove_matched_get_thumbnails (จับคู่_google_image_data): def get_ resolution_image (จับคู่ความละเอียดของภาพ): def converter_image_to_json(): def append_image_to_list (image_data, image_link): def download_image (ลิงค์รูปภาพ, ดัชนี): ขูด_และ_ดาวน์โหลด_google_images() |
หากเราตรวจสอบโค้ด ขั้นแรกให้ดูที่ฟิลด์ที่มีค่าคงที่ ฟิลด์ต่อไปนี้ถูกกำหนดเป็นค่าคงที่ เราระบุชื่อและคุณสมบัติของรูปภาพที่เราต้องการขูดและดาวน์โหลดด้วยตัวแปร queryParams
ส่วนหัว = { “User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/103.0.5060.114 Safari/537.36” } queryParameters = {“q”: “marvel”, “tbm”: “isch”, “hl”: “en”, “gl”: “us”, “ijn”: “0” } target_image_path = “.isv-r.PNCib.MSM1fd.BUooTd” html = request.get(“https://www.google.com/search”, params=queryParameters, headers=headers, timeout=30) google_images = [] |
วิธีการ scratch_and_download_google_images() คือจุดเริ่มต้นของสตรีม รูปภาพเป้าหมายจะถูกคัดลอกแล้วดาวน์โหลดไปยังโฟลเดอร์ที่เราระบุ
def scrape_and_download_google_images(): images_data_in_json = converter_image_to_json() matched_image_data = re.findall(r'\”b-GRID_STATE0\”(.*)sideChannel:\s?{}}', images_data_in_json) Remove_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) matched_ resolution_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, Remove_matched_thumbnails) full_ resolution_images = get_ressolution_image (matched_ resolution_images = matched_ resolution_images) ![]() สำหรับดัชนี (image_data, image_link) ในการแจกแจง (zip (soup.select (target_image_path), full_ resolution_images), start=1): append_image_to_list(image_data=image_data, image_link=image_link) พิมพ์(f'{index} เริ่มดาวน์โหลดรูปภาพ') download_image(image_link=image_link, ดัชนี=ดัชนี) พิมพ์(f'{index} ดาวน์โหลดรูปภาพสำเร็จ') พิมพ์(f'scraped and download images: {google_images}') |
การดาวน์โหลดรูปภาพที่คัดลอกไปยังโฟลเดอร์เสร็จสิ้นในเมธอด download_image(image_link=image_link, index=index) รูปภาพที่คัดลอกด้วยวิธีนี้จะถูกบันทึกไว้ใน “Scraped_Images” ที่เราเพิ่มไว้ก่อนหน้านี้ในตำแหน่งไฟล์ของโปรเจ็กต์
หมายเหตุ: สร้างโฟลเดอร์ “Scraped_Images” ในโครงสร้างโครงการก่อนเรียกใช้แอปพลิเคชัน
def download_image (ลิงค์รูปภาพ, ดัชนี): opener=urllib.request.build_opener() opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/101.0.4951.54 Safari/537.36′)] urllib.request.install_opener (ตัวเปิด) urllib.request.urlretrieve(ลิงค์รูปภาพ, f'Scraped_Images/Image_{index}.jpg') |
อ่านเพิ่มเติม: แอปพลิเคชั่นและประโยชน์ของ Blockchain-as-a-service สำหรับธุรกิจคืออะไร?
วิ่ง
ในการเรียกใช้แอปพลิเคชัน ให้เปิดเทอร์มินัลในตำแหน่งไฟล์และเรียกใช้คำสั่งต่อไปนี้
หลาม index.py |
หลังจากที่แอปพลิเคชันทำงาน ข้อมูลต่อไปนี้จะถูกพิมพ์บนคอนโซลของแอปพลิเคชัน
1. ภาพเริ่มดาวน์โหลด 1. ดาวน์โหลดรูปภาพสำเร็จแล้ว 2. ภาพเริ่มดาวน์โหลด 2. ดาวน์โหลดรูปภาพสำเร็จแล้ว 3. ภาพเริ่มดาวน์โหลด 3. ดาวน์โหลดรูปภาพสำเร็จแล้ว 4. ภาพเริ่มดาวน์โหลด 4. ดาวน์โหลดรูปภาพสำเร็จแล้ว 5. ภาพเริ่มดาวน์โหลด 5. ดาวน์โหลดรูปภาพสำเร็จแล้ว 6. ภาพเริ่มดาวน์โหลด 6. ดาวน์โหลดรูปภาพสำเร็จแล้ว 7. ภาพเริ่มดาวน์โหลด 7. ดาวน์โหลดรูปภาพสำเร็จแล้ว […] 48. รูปภาพเริ่มดาวน์โหลด 48. ดาวน์โหลดรูปภาพสำเร็จแล้ว ภาพที่คัดลอกและดาวน์โหลด: |
ลองดูที่ไฟล์ “Scraped_Images” เพื่อตรวจสอบภาพที่ดาวน์โหลด
อ่านเพิ่มเติม: ประเภทของบริษัทและวิธีรวมธุรกิจเริ่มต้นของคุณ
บทสรุป
เราทำการคัดลอกและดาวน์โหลด Google รูปภาพซึ่งจำเป็นด้วยเหตุผลบางประการด้วยไพธอน หากคุณต้องการรับภาพที่คุณต้องการจาก Google โดยไม่ต้องเขียนโค้ดใดๆ ให้สำรวจ Zenserp API นี่คือเอกสารที่ทรงพลังและยอดเยี่ยมที่ได้รับการปรับปรุงอย่างต่อเนื่อง