ขูดรีวิวผลิตภัณฑ์ Amazon และข้อมูลการกำหนดราคาโดยใช้ Python
เผยแพร่แล้ว: 2018-08-28ซุนวูกล่าวไว้ใน The Art of War ว่า “ ถ้าคุณรู้จักศัตรูและรู้จักตัวเอง คุณไม่จำเป็นต้องกลัวผลของการต่อสู้นับร้อย” สิ่งนี้เป็นจริงสำหรับธุรกิจเกือบทุกประเภท โดยเฉพาะธุรกิจอีคอมเมิร์ซ คุณอาจมีความคิดที่ถูกต้อง คนที่เหมาะสม USP ที่เหมาะสม ผลิตภัณฑ์ที่เหมาะสม และราคาที่เหมาะสม อย่างใดมันไม่เพียงพอ คุณต้องมีข้อมูลการแข่งขันและข้อมูลเชิงลึกที่เพียงพอ เพื่อกำหนดว่ารูปแบบธุรกิจของคุณจะประสบความสำเร็จหรือไม่ นี่คือเหตุผลว่าทำไมบริษัทอีคอมเมิร์ซที่กำลังจะมีขึ้นเกือบทุกแห่ง จึงต้องรวบรวมข้อมูล Amazon ก่อนเพื่อดูว่ามีมาตรการต่อต้านยักษ์ใหญ่ของอีคอมเมิร์ซอย่างไร
เหตุใดจึงต้องขูดรีวิวผลิตภัณฑ์ของ Amazon
นอกเหนือจากการมีหมวดหมู่ผลิตภัณฑ์ขนาดใหญ่และลึกแล้ว Amazon ยังให้บริการไปยังเกือบทุกมุมโลกและมีเว็บไซต์เฉพาะสิบสามประเทศ การขูดข้อมูลผลิตภัณฑ์ใน Amazon จะทำให้คุณได้รับข้อมูลเชิงลึกเกี่ยวกับผลิตภัณฑ์และธุรกิจที่น่าสนใจ
การทำให้โค้ดนี้ทำงานโดยอัตโนมัติด้วยความช่วยเหลือจากผู้ให้บริการ ช่วยให้คุณสามารถรวบรวมข้อมูลผลิตภัณฑ์ของ Amazon ในแง่ของแบรนด์และหมวดหมู่ และสร้างฐานข้อมูลผลิตภัณฑ์ของคุณเอง ก่อนที่คุณจะตั้งค่าร้านอีคอมเมิร์ซของคุณ มันจะช่วยให้คุณประหยัดเวลาในการทำงานและเงินได้มากหากคุณเพิ่งเริ่มต้นธุรกิจ
การขูดเว็บรีวิวผลิตภัณฑ์ Amazon โดยใช้ Python
ในบทความ "วิธีดึงข้อมูลโรงแรมจากเว็บไซต์ท่องเที่ยว" เราแสดงวิธีตั้งค่าสภาพแวดล้อมการขูดเว็บ เพียงทำตามขั้นตอนหากคุณยังใหม่กับ Python ทุกอย่างยังคงเหมือนเดิม ติดตั้ง Atom, Python จากนั้นใช้ pip เพื่อติดตั้ง BeautifulSoup จากนั้นคัดลอกและวางโปรแกรมนี้ลงในหน้าจอตัวแก้ไขและบันทึกด้วยชื่อ amazon_data_extractor.py
ในกรณีที่คุณมีปัญหาในการคัดลอกโค้ด คุณสามารถดาวน์โหลดได้จากที่นี่ คุณสามารถดาวน์โหลดไฟล์และเปิดใน Atom
[รหัสภาษา =”หลาม”]
#!/usr/bin/python
# -*- การเข้ารหัส: utf-8 -*-
นำเข้า urllib.request
นำเข้า urllib.parse
นำเข้า urllib.error
จาก bs4 นำเข้า BeautifulSoup
นำเข้า ssl
นำเข้า json
# สำหรับการละเว้นข้อผิดพลาดของใบรับรอง SSL
ctx = ssl.create_default_context()
ctx.check_hostname = เท็จ
ctx.verify_mode = ssl.CERT_NONE
url=input("ป้อน Amazon Product Url-")
html = urllib.request.urlopen(url, บริบท = ctx).read()
ซุป = BeautifulSoup (html, 'html.parser')
html = soup.prettify('utf-8')
product_json = {}
# โค้ดบล็อคนี้จะช่วยแยก Brand ของไอเทม
สำหรับ div ใน soup.findAll('div', attrs={'class': 'a-box-group'}):
ลอง:
product_json['brand'] = divs['data-brand']
หยุดพัก
ยกเว้น:
ผ่าน
# บล็อกของรหัสนี้จะช่วยแยกชื่อ Prodcut ของรายการ
สำหรับช่วงใน soup.findAll('span', attrs={'id': 'productTitle'}):
name_of_product = spans.text.strip()
product_json['name'] = name_of_product
หยุดพัก
# รหัสบล็อคนี้จะช่วยดึงราคาของสินค้าเป็นดอลลาร์
สำหรับ div ใน soup.findAll('div'):
ลอง:
ราคา = str(divs['data-asin-price'])
product_json['price'] = '$' + ราคา
หยุดพัก
ยกเว้น:
ผ่าน
# บล็อกของรหัสนี้จะช่วยดึงภาพของรายการในหน่วยดอลลาร์
สำหรับ div ใน soup.findAll('div', attrs={'id': 'rwImages_hidden'}):
สำหรับ img_tag ใน divs.findAll('img', attrs={'style': 'display:none;'
}):
product_json['img-url'] = img_tag['src']
หยุดพัก
# รหัสนี้จะช่วยดึงคะแนนดาวเฉลี่ยของผลิตภัณฑ์
สำหรับ i_tags ใน soup.findAll('i',
attrs={'data-hook': 'average-star-rating'}):
สำหรับช่วงใน i_tags.findAll('span', attrs={'class': 'a-icon-alt'}):
product_json['การจัดระดับดาว'] = spans.text.strip()
หยุดพัก
# รหัสบล็อคนี้จะช่วยดึงจำนวนรีวิวของลูกค้าเกี่ยวกับสินค้า
สำหรับช่วงใน soup.findAll('span', attrs={'id': 'acrCustomerReviewText'
}):
ถ้า spans.text:
รีวิว_count = spans.text.strip()
product_json['customer-reviews-count'] = review_count
หยุดพัก
# รหัสนี้จะช่วยดึงข้อมูลจำเพาะและรายละเอียดของผลิตภัณฑ์ชั้นนำ
product_json['รายละเอียด'] = []
สำหรับ ul_tags ใน soup.findAll('ul',
attrs={'class': 'a-unordered-list a-vertical a-spacing-none'
}):
สำหรับ li_tags ใน ul_tags.findAll('li'):
สำหรับช่วงใน li_tags.findAll('span',
attrs={'class': 'a-list-item'}, text=True,
เรียกซ้ำ=เท็จ):
product_json['details'].append(spans.text.strip())
#โค้ดนี้จะช่วยดึงรีวิวสั้นๆของสินค้า
product_json['บทวิจารณ์สั้น ๆ'] = []
สำหรับ a_tags ใน soup.findAll('a',
attrs={'class': 'a-size-base a-link-normal review-title a-color-base a-text-bold'
}):
short_review = a_tags.text.strip()
product_json['short-reviews'].append(short_review)
#โค้ดบล็อคนี้จะช่วยดึงรีวิวสินค้ายาวๆ
product_json['รีวิวแบบยาว'] = []
สำหรับ div ใน soup.findAll('div', attrs={'data-hook': 'review-collapsed'
}):
long_review = divs.text.strip()
product_json['long-reviews'].append(long_review)
# กำลังบันทึกไฟล์ html ที่คัดลอกมา
ด้วย open('output_file.html', 'wb') เป็นไฟล์:
ไฟล์.write(html)
# บันทึกข้อมูลที่คัดลอกมาในรูปแบบ json
ด้วย open('product.json', 'w') เป็นไฟล์ outfile:
json.dump (product_json, outfile, เยื้อง = 4)
พิมพ์ ('———-การดึงข้อมูลเสร็จสมบูรณ์ ตรวจสอบไฟล์ json.———-')
[/รหัส]
โปรแกรม Web Scraping นี้จะทำอะไรได้บ้าง?
ให้ฉันอธิบายด้วยตัวอย่าง ฉันจะแสดงหน้าผลิตภัณฑ์ใน Amazon พร้อมบทวิจารณ์และสิ่งที่โปรแกรมส่งคืน เมื่อมีการป้อน URL ไปยังโปรแกรมที่กำหนด
ลองใช้แล็ปท็อป Dell เครื่องนี้ใน Amazon เมื่อคุณเรียกใช้โปรแกรม โปรแกรมจะพิมพ์ “Enter Amazon Product Url- ”
เมื่อเป็นเช่นนั้น ให้คัดลอกและวาง URL ที่ให้ไว้ด้านบน ในการดำเนินการดังกล่าว JSON ต่อไปนี้จะถูกสร้างขึ้นภายใต้ชื่อ product.json ในไดเร็กทอรีปัจจุบันของคุณ สร้างลิงก์เพื่อให้ตรงกับ JSON ของคุณแล้ว
[รหัสภาษา =”หลาม”]
{
“แบรนด์”: “เอเซอร์”,
“ชื่อ”: “2018 ใหม่ล่าสุด Acer 14 นิ้ว HD Chromebook LED Anti-glare Display, Intel Dual-Core Celeron 3855u 1.6GHz processor, 4GB RAM, 16GB SSD, HDMI, USB 3.0, เว็บแคม, 802.11a Wifi, Bluetooth, Google Chrome ระบบปฏิบัติการ”,
“ราคา”: “$229.00”,
“img-url”: “https://images-na.ssl-images-amazon.com/images/I/41nlp137qeL._SX300_QL70_.jpg”,
“การจัดระดับดาว”: “4.2 จาก 5 ดาว”,
“customer-reviews-count”: “79 รีวิวของลูกค้า”,
"รายละเอียด": [
จอแสดงผล “14” Anti-Glare HD WLED Backlit (1366×768) พร้อมเทคโนโลยี Acer ComfyView, เครื่องอ่านสื่อในตัว”,
“Intel dual-core Skylake Celeron 3855U 1.60 GHz processor 2M Cache, Intel HD Graphics 510, เว็บแคม HD ในตัวพร้อมไมโครโฟน”,
“หน่วยความจำ LPDDR3 4GB, หน่วยความจำแฟลช eMMC 16GB, รองรับคลาวด์ในตัว-บันทึกไฟล์ของคุณไปยังบัญชี Google Drive ของคุณได้อย่างง่ายดายเพื่อการเข้าถึงที่ปลอดภัยทุกที่ที่คุณไป”,
“ความเร็วสูง 802.11a WiFi, บลูทูธ, HDMI, 2x USB 3.0, 1x USB 3.1 Type-C, 1 x แจ็คหูฟัง/ไมโครโฟนแบบคอมโบ”,
“Google Chrome OS, อายุการใช้งานแบตเตอรี่สูงสุด 10 ชั่วโมง, สี: ดำ”
],
“บทวิจารณ์สั้น ๆ”: [
“คอมพิวเตอร์ที่ดีที่สุดและปลอดภัยกว่าในการท่องเว็บและดูวิดีโอทุกประเภท”,
“… มีสิ่งนี้แค่สองสามวัน แต่ฉันชอบมันมาก ฉันเปลี่ยนจาก macbook เป็นสิ่งนี้…”,
“ยอดเยี่ยมสำหรับการทำงานในโรงเรียน….และ Netflix”,
“นี่ไม่ใช่ Acer ใหม่ล่าสุดปี 2018 – วันที่ผลิตคือ 08/2016”,
“ผลิตภัณฑ์ที่ยอดเยี่ยม…ใช้งานง่าย”,
“ฉันรักแล็ปท็อปเครื่องนี้”
“… มันเป็นหน้าจอที่ใหญ่ที่สุด – ดูเหมือนแม่จะชอบมัน”,
"ง่ายต่อการใช้"
],
“รีวิวยาวๆ”: [
“ฉันมี Acer Chromebook 11.5” อยู่แล้ว ซึ่งซื้อมาเมื่อไม่กี่ปีก่อน และจากความสำเร็จของรุ่นแรกนี้ ฉันตัดสินใจซื้อเครื่องอื่นที่มีขนาดที่ใหญ่กว่านี้ ฉันแค่รัก รัก Acer Chromebook สองเครื่องของฉัน ที่ผ่านมาฉันทำผิดพลาดในการซื้อคอมพิวเตอร์ประเภท Microsoft Windows ปกติและบางเครื่องยังคงมีอยู่ที่บ้าน แต่หลังจากค้นพบ Acer Chromebook ฉันต้องบอกว่าฉันหวังว่าฉันจะรู้ก่อนหน้านี้เกี่ยวกับความเหนือกว่าของ Chromebook เหนือ Windows , ผลิตภัณฑ์ของ Microsoft….ฉันไม่ต้องการเปิดสงครามคอมพิวเตอร์ประเภท Microsoft Windows เทียบกับ Acer Chromebook ที่นี่….ฉันแค่บอกว่า…ถ้าคุณพอใจกับผลิตภัณฑ์ Microsoft Windows ของคุณ ฉันไม่วิจารณ์การซื้อของคุณ สิ่งที่ฉันเป็น บอกว่าการมีทั้งสองผลิตภัณฑ์ที่บ้าน…ฉันชอบความเรียบง่ายของ Acer Chromebook มากกว่า “อื่นๆ”…. ฉันตระหนักดีว่าคอมพิวเตอร์ประเภท Microsoft Windows สามารถทำสิ่งอื่น ๆ ที่ Chromebook ไม่สามารถทำได้ แต่ถ้าคุณเป็น แค่ท่องเว็บและใช้สื่อบนเว็บ, Facebook, หรือ Yahoo Mail, YouTube, Netflix…. ไม่มีอะไรดีไปกว่า Acer Chromebook สำหรับความน่าเชื่อถือและความเร็ว Acer Chromebook เปิดขึ้นด้วยความเร็วแสง และไม่ต้องกังวลกับไวรัสใดๆ นอกจากนี้ มันไม่ช้าลงเมื่ออัปเดตระบบเหมือนที่ Microsoft Windows ทำอย่างต่อเนื่อง….ใช่ ที่หน้าจอ 15.6 นิ้ว มันเป็นอัญมณีเล็กๆ น้อยๆ และราคาก็ดีมาก…. ขอบคุณ Amazon และขอขอบคุณเอเซอร์”
“ฉันเพิ่งมีสิ่งนี้มาสองสามวัน แต่ฉันชอบมันมาก ฉันเปลี่ยนจาก macbook เป็นสิ่งนี้และคาดว่าจะผิดหวัง ฉันไม่ต้องปรับการตั้งค่าหรืออะไรใดๆ กับแล็ปท็อปเครื่องนี้ ฉันลงชื่อเข้าใช้ gmail ของฉันและทุกอย่างสมบูรณ์แบบ จนถึงตอนนี้ฉันไม่มีข้อร้องเรียน ฉันไม่อยากจะเชื่อเลยว่าราคาถูกแค่ไหน”,
“มีมันมานานกว่าหนึ่งเดือนแล้ว เป็นเครื่องที่ใช้งานง่ายและรวดเร็วด้วยหน้าจอขนาดใหญ่ ซื้อให้ลูกสาวใช้ทำการบ้าน โรงเรียนของเราก็เหมือนกับหลายๆ คนที่ใช้ Google เอกสารสำหรับงานส่วนใหญ่ที่ทำทางออนไลน์ โครมบุ๊กคือสิ่งที่พวกเขาต้องการ – ไม่จำเป็นต้องใช้ Microsoft! แน่นอนว่าลูกสาวของฉันชอบหน้าจอขนาดใหญ่สำหรับดู Netflix เมื่อทำการบ้านเสร็จ!”,
“ไม่ใช่ Chromebook ปี 2018 ตามที่ระบุไว้ในชื่อ ฉันคาดหวังว่า Chromebook จะผลิตในช่วงปลายปี 2017 หรือ 2018 Chromebook เครื่องนี้ผลิตในเดือนสิงหาคมปี 2016 ชื่อที่ทำให้เข้าใจผิดมาก……ไม่ใช่ "2018 ใหม่ล่าสุด" แน่นอน Chromebook ดูเหมือนจะค่อนข้างดี”,
“ฉันเบื่อกับการอัปเดตที่ผิดพลาดของ Windows 10 และต้องการคอมพิวเตอร์ที่เชื่อถือได้ เพื่อนหลายคนแนะนำ Acer ให้ฉัน ฉันได้รับมันเมื่อสัปดาห์ที่แล้วและรักมัน ติดตั้งง่ายและเข้าใจได้ง่าย ไม่มีความร้อนจากฮาร์ดไดรฟ์ รวดเร็ว ไม่ยุ่งยาก คุณภาพดี ฯลฯ ฉันยังมี Dell ที่ใช้ Windows 10 อยู่ แต่สำหรับตอนนี้ Acer Chromebook เครื่องนี้เป็นตัวเลือกแรกของฉัน ต้องใช้เวลาเล็กน้อยในการทำความคุ้นเคยกับแป้นพิมพ์ที่มีแป้นน้อยกว่าและระยะห่างกันมากขึ้น แต่ฉันไม่มีความมั่นใจอื่น ๆ เกี่ยวกับ Chromebook เครื่องนี้ ฉันกำลังเรียนรู้เพิ่มเติมเกี่ยวกับ Chromebook ทุกวัน และขอขอบคุณในความเรียบง่ายและไม่ต้องการความปลอดภัยเพิ่มเติม ความคุ้มค่าและประสิทธิภาพที่ยอดเยี่ยม ฉันพอใจกับราคาและคุณสมบัติของ Acer ง่ายต่อการเชื่อมต่อกับอีเธอร์เน็ตด้วยอะแดปเตอร์หากจำเป็น”,
“ฉันรักแล็ปท็อปเครื่องนี้! ในขณะที่ฉันคุ้นเคยกับ Macbooks คนรักของฉันเพิ่งเสียชีวิตไป ฉันไม่ได้อยู่ในตลาดสำหรับ macbook เครื่องอื่น (ไม่ใช่โดยตัวเลือก) และต้องการแล็ปท็อปเครื่องใหม่อย่างรวดเร็ว ฉันค้นคว้าข้อมูลอย่างรวดเร็วและเห็นรีวิวดีๆ เกี่ยวกับแล็ปท็อปเครื่องนี้ ฉันสั่งซื้อบน Amazon Prime และได้รับภายใน 3 วัน ฉันประทับใจ! Chomebook ทำให้ชีวิตของฉันง่ายมาก ทุกอย่างเชื่อมต่อกัน! บางอย่างเกี่ยวกับแป้นพิมพ์ทำให้พิมพ์ได้ง่าย ฉันรักมัน!",
“หนักไปหน่อยแต่มันเป็นหน้าจอที่ใหญ่ที่สุด – ดูเหมือนว่าแม่จะชอบมัน… ไม่ต้องเกะกะหน้าจอเดสก์ท็อปอีกต่อไป… ขอบคุณ”,
“ซื้อให้ญาติผู้ใหญ่ ง่ายต่อการใช้!"
]
}
[/รหัส]

นอกจากนี้ คุณจะเห็นว่าเราได้บันทึกหน้า html ที่คัดลอกมาภายใต้ชื่อ output_file.html ในไดเร็กทอรีการทำงานเดียวกัน นี่คือลิงค์เพื่อตรวจสอบว่าเอกสาร html ที่คัดลอกมาสำหรับหน้าผลิตภัณฑ์นี้อย่างไร คุณสามารถลองขูดข้อมูลผลิตภัณฑ์ Amazon จาก html นี้โดยใช้ BeautifulSoup
สิ่งที่ต้องจำในขณะที่ขูดรีวิวสินค้าของ Amazon และข้อมูลราคา
1. คุณจะได้รับสิ่งต่อไปนี้จากหน้าผลิตภัณฑ์ของ Amazon เกี่ยวกับการใช้มีดโกนผลิตภัณฑ์นี้
- ก. ยี่ห้อ
- ข. ชื่อ
- ค. ราคา
- ง. URL รูปภาพ
- อี ระดับดาว
- ฉ. จำนวนรีวิวของลูกค้า
- อี รายละเอียดที่สำคัญ
- ฉ. รีวิวสั้นๆ
- กรัม รีวิวยาวๆ
จุดข้อมูลแต่ละจุดจะมีอยู่ใน JSON (หนึ่งหรือสองจุดอาจหายไปหากไม่มีอยู่ในผลิตภัณฑ์ หรือหากมีดโกนไม่สามารถระบุตำแหน่งได้) แต่ละจุดข้อมูลจะมาพร้อมกับป้ายกำกับที่เกี่ยวข้อง
2. เราไม่สามารถรับประกันได้ว่า URL หน้าผลิตภัณฑ์ทุกรายการจะได้รับการประมวลผลอย่างราบรื่นด้วยรหัสนี้ เนื่องจาก Amazon ยังคงเปลี่ยนโค้ดอย่างสม่ำเสมอ และรายการทั้งหมดหรือหมวดหมู่ย่อยทั้งหมดไม่มีการจัดรูปแบบ HTML CSS เหมือนกัน
3. หากคุณเรียกใช้โปรแกรมนี้หลายครั้ง ในช่วงเวลาสั้นๆ คุณอาจพบข้อผิดพลาด HTTP error 503 ซึ่งเป็นข้อผิดพลาดทางฝั่งเซิร์ฟเวอร์ แต่ความหมายในกรณีนี้คือ Amazon กำลังบล็อกการพยายามรวบรวมข้อมูลของคุณ ดังนั้นเมื่อคุณขูด Amazon เพื่อใช้งานอย่างมืออาชีพ ขอแนะนำให้คุณขอความช่วยเหลือจากบริการขูดเว็บเช่น PromptCloud บริการขูดเว็บสามารถตั้งค่าระบบสำหรับคุณ ซึ่งจะรวบรวมข้อมูลทั้งหมดที่คุณต้องการโดยอัตโนมัติ เพื่อให้คุณสามารถมุ่งเน้นไปที่ธุรกิจของคุณ โดยไม่ต้องกังวลเกี่ยวกับข้อมูล
4. โปรแกรมนี้ใช้ได้เฉพาะกับ www.amazon.com และไม่ได้รับการทดสอบในเว็บไซต์เฉพาะของประเทศใดๆ
เรามีไซต์อีคอมเมิร์ซใหม่ที่ตั้งร้านค้าเกือบทุกวัน ท่ามกลางการแข่งขันที่รุนแรง การยังชีพและผลกำไรทางธุรกิจกลายเป็นเรื่องยากหากไม่มีข้อมูลเชิงลึกด้านการแข่งขัน ข้อมูลผลิตภัณฑ์ของ Amazon อาจเป็นเกณฑ์มาตรฐานและจุดเริ่มต้นสำหรับคุณ การขูดเว็บ Amazon สามารถให้ข้อมูลเชิงลึกเกี่ยวกับผลิตภัณฑ์แก่คุณ ซึ่งจะช่วยคุณสร้างและปรับขนาดกลยุทธ์ธุรกิจและหมวดหมู่ผลิตภัณฑ์ที่เหมาะสม
ต้องการความช่วยเหลือในการดึงข้อมูลเว็บ?
รับข้อมูลที่สะอาดและพร้อมใช้งานจากเว็บไซต์สำหรับแอปพลิเคชันทางธุรกิจผ่านบริการขูดเว็บของเรา ติดต่อเรา.
ข้อจำกัดความรับผิดชอบ: รหัสที่ให้ไว้ในบทช่วยสอนนี้มีไว้เพื่อการเรียนรู้เท่านั้น เราไม่รับผิดชอบต่อการใช้งานและจะไม่รับผิดชอบต่อการใช้งานซอร์สโค้ดที่เป็นอันตรายใดๆ
