ขูดและดาวน์โหลด Google รูปภาพด้วย Python
เผยแพร่แล้ว: 2023-01-02ความแพร่หลายที่เพิ่มขึ้นของการขูดเว็บได้เพิ่มพื้นที่การใช้งานอย่างมาก ปัจจุบันแอปพลิเคชัน AI จำนวนมากป้อนชุดข้อมูลการขูดเว็บด้วยข้อมูลล่าสุดเป็นประจำ มีการไหลเวียนของข้อมูลจากเว็บไซต์เป้าหมายไปยังชุดข้อมูลของแอปพลิเคชันปัญญาประดิษฐ์อย่างสม่ำเสมอและต่อเนื่อง
โพสต์ที่เกี่ยวข้อง: ผลกระทบของปัญญาประดิษฐ์ต่ออนาคตของความสำเร็จของลูกค้า
การประมวลผลภาพเป็นหนึ่งในส่วนที่ได้รับความนิยมมากที่สุดในแอปพลิเคชันปัญญาประดิษฐ์ การประมวลผลภาพเป็นสาขาวิชาวิทยาการคอมพิวเตอร์ที่มุ่งเน้นให้คอมพิวเตอร์สามารถระบุและเข้าใจวัตถุและบุคคลในภาพและวิดีโอได้ เช่นเดียวกับปัญญาประดิษฐ์ประเภทอื่นๆ การประมวลผลภาพมีจุดประสงค์เพื่อดำเนินการและทำงานอัตโนมัติที่จำลองความสามารถของมนุษย์ ในกรณีนี้ การประมวลผลภาพจะพยายามคัดลอกทั้งวิธีที่ผู้คนมองเห็นและวิธีที่พวกเขาเข้าใจสิ่งที่พวกเขาเห็น
ข้อมูลที่จำเป็นสำหรับการพัฒนาอัลกอริทึมและการลดระยะขอบของข้อผิดพลาดในหลายๆ ฟิลด์ โดยเฉพาะอย่างยิ่งในโครงการประมวลผลภาพ ได้มาจากเว็บสแครป ในบทความนี้ เราจะพัฒนาแอปพลิเคชันที่ใช้บ่อยในโครงการประมวลผลภาพ เราจะขูดและดาวน์โหลด Google รูปภาพด้วยภาษาโปรแกรม Python มาเริ่มกันเลย
การตั้งค่าโครงการ
ก่อนอื่นมาเปิดโฟลเดอร์บนเดสก์ท็อป มาเปิดเทอร์มินัลในพาธไฟล์นี้และติดตั้งไลบรารี่ที่จำเป็นโดยรันคำสั่งด้านล่าง
คำขอติดตั้ง pip bs4 |
หลังจากติดตั้งไลบรารีที่จำเป็นแล้ว ให้สร้างไฟล์ชื่อ 'index.py' ในโฟลเดอร์
รหัส
มาวางโค้ดต่อไปนี้ลงในไฟล์ 'index.py' ที่เราสร้างขึ้น
คำขอนำเข้า, re, json, urllib.request จาก bs4 นำเข้า BeautifulSoupheaders = { “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 = [] 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
อ่านเพิ่มเติม: ChatGPT – ความหมายสำหรับธุรกิจ
ส่วนหัว = { “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” targeted_image_base_html_path = “.VFACy.kGQAp.sMi44c.lNHeqe.WGvvNb” 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. ดาวน์โหลดรูปภาพที่คัดลอกและดาวน์โหลดรูปภาพสำเร็จแล้ว: [ { 'image_title': 'การ์ตูนมาร์เวล – วิกิพีเดีย', 'image_source_link': 'https://th.wikipedia.org/wiki/Marvel_Comics', 'image_link': 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Marvel_Logo.svg/1200px-Marvel_Logo.svg.png' }, { 'image_title': 'Marvel Universe – Wikipedia', 'image_source_link': 'https://th.wikipedia.org/wiki/Marvel_Universe', 'image_link': 'https://upload.wikimedia.org/wikipedia/en/1/19/Marvel_Universe_%28Civil_War%29.jpg' }, { 'image_title': 'Marvel.com | เว็บไซต์อย่างเป็นทางการของ Marvel Movies, Characters, Comics, TV', 'image_source_link': 'https://www.marvel.com/', 'ลิงก์รูปภาพ': 'https://i.annihil.us/u/prod/marvel/images/OpenGraph-TW-1200×630.jpg' }, { 'image_title': 'Marvel Entertainment – YouTube', 'image_source_link': 'https://www.youtube.com/c/marvel', 'image_link': 'https://yt3.ggpht.com/fGvQjp1vAT1R4bAKTFLaSbdsfdYFDwAzVjeRVQeikH22bvHWsGULZdwIkpZXktcXZc5gFJuA3w=s900-ck-c0x00ffffff-no-rj' }, { 'image_title': 'ภาพยนตร์และรายการมาร์เวล | ดิสนีย์+', 'image_source_link': 'https://www.disneyplus.com/brand/marvel', 'image_link': 'https://prod-ripcut-delivery.disney-plus.net/v1/variant/disney/DA2E198288BFCA56AB53340211B38DE7134E40E4521EDCAFE6FFB8CD69250DE9/scale?width=2880&aspectRatio=1.78&format=jpeg' }, { 'image_title': 'ความรู้เบื้องต้นเกี่ยวกับ Marvel สำหรับมือใหม่ | สาย', 'image_source_link': 'https://www.wired.com/2012/03/an-intro-to-marvel-for-newbies/', 'image_link': 'https://media.wired.com/photos/5955ceabcbd9b77a41915cf6/master/pass/marvel-characters.jpg' }, { 'image_title': 'วิธีดูภาพยนตร์ Marvel ทุกเรื่องตามลำดับเรื่อง – พาเหรด: ความบันเทิง สูตรอาหาร สุขภาพ ชีวิต วันหยุด', 'image_source_link': 'https://parade.com/1009863/alexandra-hurtado/marvel-movies-order/', 'image_link': 'https://parade.com/.image/t_share/MTkwNTgxMjkxNjk3NDQ4ODI4/marveldisney.jpg' }, { 'image_title': 'การ์ตูนมาร์เวล | ประวัติศาสตร์ ตัวละคร ข้อเท็จจริง และภาพยนตร์ | บริแทนนิกา', 'image_source_link': 'https://www.britannica.com/topic/Marvel-Comics', 'image_link': 'https://cdn.britannica.com/62/182362-050-BD31B42D/Scarlett-Johansson-Black-Widow-Chris-Hemsworth-Thor.jpg' }, { 'image_title': 'กัปตัน มาร์เวล (2019) – IMDb', 'image_source_link': 'https://www.imdb.com/title/tt4154664/', 'image_link': 'https://m.media-amazon.com/images/M/MV5BMTE0YWFmOTMtYTU2ZS00ZTIxLWE3OTEtYTNiYzBkZjViZThiXkEyXkFqcGdeQXVyODMzMzQ4OTI@._V1_FMjpg_UX1000_.jpg' }, […] ] |
ลองดูที่ไฟล์ “Scraped_Images” เพื่อตรวจสอบภาพที่ดาวน์โหลด
อ่านเพิ่มเติม: ประเภทของบริษัทและวิธีรวมธุรกิจเริ่มต้นของคุณ
บทสรุป
เราทำการคัดลอกและดาวน์โหลด Google รูปภาพซึ่งจำเป็นด้วยเหตุผลบางประการด้วยไพธอน หากคุณต้องการรับภาพที่คุณต้องการจาก Google โดยไม่ต้องเขียนโค้ดใดๆ ให้สำรวจ Zenserp API นี่คือเอกสารที่ทรงพลังและยอดเยี่ยมที่ได้รับการปรับปรุงอย่างต่อเนื่อง