Thu thập dữ liệu web để so sánh giá vào năm 2025 – Các bước dễ dàng

Python , Thu thập dữ liệu ,04-01-20235 phút đọc

Web scraping là nghệ thuật trích xuất dữ liệu từ internet. Khi nói đến ứng dụng của nó, nó có một lượng lớn các ứng dụng. Một trong số đó là so sánh giá từ các trang web khác nhau. Mua sắm trực tuyến đã trở thành sự bùng nổ trong ngành hiện nay và việc so sánh giá của một số sản phẩm nhất định đã trở thành một điều cần thiết. Chúng tôi

Web scraping là nghệ thuật trích xuất dữ liệu từ internet. Khi nói đến ứng dụng của nó, nó có rất nhiều ứng dụng. Một trong số đó là so sánh giá từ các trang web khác nhau. Mua sắm trực tuyến đã trở thành cơn sốt trong ngành hiện nay và việc so sánh giá của một số sản phẩm nhất định đã trở thành điều cần thiết. Tất cả chúng ta đều truy cập nhiều trang web khi cần mua một sản phẩm cụ thể nhưng bạn đã bao giờ nghĩ đến việc tạo một công cụ so sánh giá thực hiện cùng một công việc cho bạn và đặt ưu đãi tốt nhất trước mặt bạn chưa?  

Trong bài viết này, chúng tôi sẽ tạo một công cụ so sánh giá web tuyệt vời bằng Python cho phép bạn theo dõi giá của các sản phẩm trên nhiều nguồn khác nhau và thông báo cho bạn về hiệu suất của các đối thủ cạnh tranh khác nhau trên thị trường. Hơn nữa, nó cũng sẽ thông báo cho doanh nghiệp biết giá của một sản phẩm cụ thể tăng hay giảm so với giá dự đoán.

Nguồn dữ liệu chúng tôi sẽ sử dụng cho bài viết này sẽ là tệp JSON và chúng tôi sẽ so sánh giá sản phẩm chúng tôi nhận được từ Amazon, eBay và Walmart. Dữ liệu mẫu của chúng tôi trông như bên dưới,

Bạn có thể thoải mái chuyển đến bất kỳ phần nào để tìm hiểu thêm về việc thu thập dữ liệu web để so sánh giá bằng python!

Mục lục

Các bước liên quan đến việc thu thập dữ liệu web để so sánh giá:

[
  {
    "last_visited": "2018-01-30T13:38:01",
    "name": "PUMA Men's Evospeed 17.4 TT Soccer Shoe",
    "amazon_price": 36.94,
    "ebay_price": 37,
    "walmart_price": 37,
    "amazon_url": "https://www.amazon.com/PUMA-Evospeed-Soccer-Ultra-Yellow-Peacoat-Orange/dp/B01J5LEMZI/",
    "ebay_url": "https://www.ebay.com/itm/PUMA-Mens-Evospeed-17-4-Tt-Soccer-Shoe/302471489090",
    "walmart_url": "https://www.walmart.com/ip/PUMA-Men-s-Evospeed-17-4-Tt-Soccer-Shoe/587074448",
    "description": "The new evospeed 17.4 is a performance football boot for players of all levels. The soft and lightweight synthetic leather on the upper keeps the boot lightweight, comfortable and ensures durability. The lightweight outsole offers the perfect balance between traction, stability and acceleration PUMA is the global athletic brand that successfully fuses influences from sport, lifestyle and fashion. PUMA's unique industry perspective delivers the unexpected in sport-lifestyle footwear, apparel and accessories, through technical innovation and revolutionary design.",
    "brand": "PUMA",
    "image": "https://images-na.ssl-images-amazon.com/images/I/61v1mylcAqL._UL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:07",
    "name": "L'Oreal Paris Skin Care Revitalift Cicacream Face Moisturizer",
    "amazon_price": 13.97,
    "ebay_price": 13.99,
    "walmart_price": 13.97,
    "amazon_url": "https://www.amazon.com/LOreal-Paris-Revitalift-Cicacream-Moisturizer/dp/B074MBDRHW",
    "ebay_url": "https://www.ebay.com/itm/LOREAL-Paris-NEW-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair-ORIGINAL/112715734801",
    "walmart_url": "https://www.walmart.com/ip/L-Or-al-Paris-Revitalift-Cicacream-Anti-Wrinkle-Skin-Barrier-Repair/519350834",
    "description": "Skin's moisture barrier weakens with age, resulting in greater moisture loss, more prominent wrinkles and loss of firmness. Lightweight, protective cream is formulated with Pro-Retinol, a powerful wrinkle-fighting ingredient and Centella Asiatica, an herb used in traditional Chinese medicine. Strengthens and repairs skin barrier to help resist visible lines, loss of firmness and other signs of aging that a weakened skin barrier can accentuate. See visible results immediately: skin feels healthier, softer, smoother and more supple. Skin feels noticeably more hydrated. Skin barrier is stronger, helping to resist signs of aging. In two weeks: fine lines appear visibly reduced. Firmness and elasticity look noticeably improved. In four weeks: wrinkles appear less visible. Clarity and tone improves, skin exudes luminosity. Skin continues to look and feel soft, smooth, healthy.",
    "brand": "L'Oreal Paris",
    "image": "https://images-na.ssl-images-amazon.com/images/I/71Ff2vn4vjL._SL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:12",
    "name": "Adidas Dynamic Pulse By Adidas For Men",
    "amazon_price": 6.96,
    "ebay_price": 18.99,
    "walmart_price": 7,
    "amazon_url": "https://www.amazon.com/Adidas-Dynamic-Toilette-3-4-Ounce-Bottle/dp/B000VON5F2/",
    "ebay_url": "https://www.ebay.com/itm/Adidas-DYNAMIC-PULSE-Cologne-for-Men-3-4-oz-edt-3-3-Spray-New-in-BOX/252837623533",
    "walmart_url": "https://www.walmart.com/ip/Adidas-Dynamic-Pulse-for-Men-3-4-oz-EDT/28664356",
    "description": "Launched by the design house of Adidas in 1997, ADIDAS DYNAMIC PULSE is a men's fragrance that possesses a blend of A fresh scent of citrus, cedar and mint with low tones of sweet fruits, fragrant woods and tonka bean. It is recommended for daytime wear.When applying any fragrance please consider that there are several factors which can affect the natural smell of your skin and, in turn, the way a scent smells on you. For instance, your mood, stress level, age, body chemistry, diet, and current medications may all alter the scents you wear. Similarly, factor such as dry or oily skin can even affect the amount of time a fragrance will last after being applied",
    "brand": "adidas",
    "image": "https://images-na.ssl-images-amazon.com/images/I/41%2BAnOP5nbL.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:19",
    "name": "Canon EOS Rebel T6 Digital SLR Camera",
    "amazon_price": 449,
    "ebay_price": 449,
    "walmart_price": 449,
    "amazon_url": "https://www.amazon.com/Canon-Digital-Camera-18-55mm-3-5-5-6/dp/B01CO2JPYS",
    "ebay_url": "https://www.ebay.com/itm/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens/232596041502",
    "walmart_url": "https://www.walmart.com/ip/Canon-EOS-Rebel-T6-DSLR-Camera-with-18-55mm-Lens-Black/50820749",
    "description": "",
    "brand": "Canon",
    "image": "https://images-na.ssl-images-amazon.com/images/I/81YszfZS8%2BL._SL1500_.jpg"
  },
  {
    "last_visited": "2018-01-30T13:38:25",
    "name": "Woodland Fox Critter 36' Mylar Balloon",
    "amazon_price": 5.49,
    "ebay_price": 6.49,
    "walmart_price": 7.6,
    "amazon_url": "https://www.amazon.com/Woodland-Fox-Critter-Mylar-Balloon/dp/B00S9TKVYO",
    "ebay_url": "https://www.ebay.com/itm/Woodland-Critters-Fox-36-inch-Foil-Balloon/132058119680",
    "walmart_url": "https://www.walmart.com/ip/Woodland-Fox-Foil-Balloon/43350002",
    "description": "Celebrate any occasion with an adorable woodland fox critter balloon! 36\" Woodland Critters fox shape foil balloon.",
    "brand": "Betallic",
    "image": "https://images-na.ssl-images-amazon.com/images/I/71Z9bG-BzuL._SL1500_.jpg"
  }
]

Một số trường quan trọng có liên quan đến tập lệnh chúng ta đang viết là amazon_price, ebay_price và walmart_price.

Bây giờ chúng ta đã thấy dữ liệu của mình. Vậy hãy bắt đầu giai đoạn phát triển.

Chúng tôi sẽ tạo công cụ này bằng Python 3.x và trước hết, chúng tôi sẽ sử dụng thư viện JSON để phân tích cú pháp JSON và xử lý thêm. Công cụ này cung cấp chức năng tuyệt vời bằng cách in tên sản phẩm và giá của trang web. Chúng tôi đang nhập thư viện JSON để phân tích cú pháp JSON.

nhập json

Bây giờ chúng ta sẽ gọi hàm open() trong đoạn mã để đọc nội dung từ tệp JSON,

nhập json nếu __name__ == '__main__' : price_data = Không có price = [] với mở ( 'data.json' , mã hóa = 'utf8' )  f: price_data = f.read() nếu price_data không phải  Không có : json_price_data = json.loads(price_data)

Bây giờ dữ liệu JSON của chúng ta đã được đọc, chúng ta sẽ chuyển đổi nó thành các cấu trúc dữ liệu tích hợp của Python mà mã sẽ gọi phương thức json.loads() để chuyển đổi chuỗi JSON thành một từ điển hoặc danh sách các từ điển, tùy thuộc vào các mục nhập.

Vì mục tiêu chính là tìm cửa hàng bán sản phẩm với giá thấp nhất, mục tiêu của chúng ta là tìm giá tối thiểu và các chi tiết liên quan khác như tên sản phẩm và cửa hàng. Thông tin giá của cửa hàng liên quan được lưu trữ trong các khóa amazon_price, ebay_price và Walmart_price. Để tìm giá tối thiểu của mỗi sản phẩm, chúng ta cần lặp lại các mục trong danh sách giá.

for d in json_price_data:
            price.append({'name': d['name'], 'price': float(d['amazon_price']), 'url': d['amazon_url']})
            price.append({'name': d['name'], 'price': float(d['walmart_price']), 'url': d['walmart_url']})
            price.append({'name': d['name'], 'price': float(d['ebay_price']), 'url': d['ebay_url']})
            minPricedItem = min(price, key=lambda x: x['price'])
            print(minPricedItem)
            print('=================')
            price = []

Chúng tôi đang sử dụng lambdas và thiết lập khóa min() để đảm bảo trường giá đang được so sánh. Nó tạo ra kết quả sau:

Hãy tái cấu trúc định dạng một chút.

for d in json_price_data:
            price.append({'name': d['name'], 'price': d['amazon_price'], 'url': d['amazon_url']})
            price.append({'name': d['name'], 'price': d['walmart_price'], 'url': d['walmart_url']})
            price.append({'name': d['name'], 'price': d['ebay_price'], 'url': d['ebay_url']})
            minPricedItem = min(price, key=lambda x: float(x['price']))
            store_name = ''
            # Pick the store name based on url
            if 'amazon' in minPricedItem['url'].lower():
                store_name = 'Amazon'
            elif 'walmart' in minPricedItem['url'].lower():
                store_name = 'Amazon'
            elif 'ebay' in minPricedItem['url'].lower():
                store_name = 'eBay'
            print('{} is available in cheap price at {}. The price is ${}'.format(minPricedItem['name'], store_name,
                                                                                 minPricedItem['price']))
            price = []

Nó sẽ đưa ra kết quả sau:

Xin chúc mừng! Chúng tôi đã tạo thành công tập lệnh mà bạn có thể chạy định kỳ để nhận giá cập nhật của sản phẩm.

Proxy nào là tốt nhất để thu thập dữ liệu web nhằm so sánh giá bằng Python?

ProxyScrape là một trong những nhà cung cấp proxy trực tuyến phổ biến và đáng tin cậy nhất. Ba dịch vụ proxy bao gồm máy chủ proxy trung tâm dữ liệu chuyên dụng, máy chủ proxy dân dụng và máy chủ proxy cao cấp. Vậy, giải pháp khả thi nhất cho proxy HTTP tốt nhất để thu thập dữ liệu web để so sánh giá bằng python là gì? Trước khi trả lời những câu hỏi đó, tốt nhất là bạn nên xem các tính năng của từng máy chủ proxy.

Proxy trung tâm dữ liệu chuyên dụng phù hợp nhất cho các tác vụ trực tuyến tốc độ cao, chẳng hạn như truyền phát lượng dữ liệu lớn (về kích thước) từ nhiều máy chủ khác nhau cho mục đích phân tích. Đây là một trong những lý do chính khiến các tổ chức chọn proxy chuyên dụng để truyền lượng dữ liệu lớn trong thời gian ngắn.

Proxy trung tâm dữ liệu chuyên dụng có một số tính năng, chẳng hạn như băng thông không giới hạn và kết nối đồng thời, proxy HTTP chuyên dụng để giao tiếp dễ dàng và xác thực IP để bảo mật hơn. Với thời gian hoạt động 99,9%, bạn có thể yên tâm rằng trung tâm dữ liệu chuyên dụng sẽ luôn hoạt động trong bất kỳ phiên nào. Cuối cùng nhưng không kém phần quan trọng, ProxyScrape cung cấp dịch vụ chăm sóc khách hàng tuyệt vời và sẽ giúp bạn giải quyết vấn đề trong vòng 24-48 giờ làm việc. 

Tiếp theo là proxy dân dụng. Proxy dân dụng là proxy dành cho mọi người dùng nói chung. Lý do chính là địa chỉ IP của proxy dân dụng giống với địa chỉ IP do ISP cung cấp. Điều này có nghĩa là việc xin phép máy chủ mục tiêu để truy cập dữ liệu của nó sẽ dễ dàng hơn bình thường. 

Tính năng khác của ProxyScrape Proxy dân dụng là một tính năng luân phiên. Proxy luân phiên giúp bạn tránh bị cấm vĩnh viễn tài khoản vì proxy dân dụng của bạn thay đổi địa chỉ IP của bạn một cách động, khiến máy chủ đích khó kiểm tra xem bạn có đang sử dụng proxy hay không. 

Ngoài ra, các tính năng khác của proxy dân dụng là: băng thông không giới hạn, cùng với kết nối đồng thời, proxy HTTP/s chuyên dụng, proxy tại bất kỳ phiên nào vì có hơn 7 triệu proxy trong nhóm proxy, xác thực tên người dùng và mật khẩu để bảo mật hơn và cuối cùng nhưng không kém phần quan trọng, khả năng thay đổi máy chủ quốc gia. Bạn có thể chọn máy chủ mong muốn bằng cách thêm mã quốc gia vào xác thực tên người dùng. 

Cuối cùng là proxy cao cấp. Proxy cao cấp giống như proxy trung tâm dữ liệu chuyên dụng. Chức năng vẫn như cũ. Sự khác biệt chính là khả năng truy cập. Trong proxy cao cấp, danh sách proxy (danh sách chứa proxy) được cung cấp cho mọi người dùng trên ProxyScrape mạng. Đó là lý do tại sao proxy cao cấp có giá thấp hơn proxy trung tâm dữ liệu chuyên dụng.

Vậy, giải pháp khả thi nhất cho proxy HTTP tốt nhất để thu thập dữ liệu web để so sánh giá bằng python là gì? Câu trả lời sẽ là " proxy dân dụng ". Lý do rất đơn giản. Như đã nói ở trên, proxy dân dụng là proxy luân phiên, nghĩa là địa chỉ IP của bạn sẽ được thay đổi động trong một khoảng thời gian, điều này có thể hữu ích để đánh lừa máy chủ bằng cách gửi nhiều yêu cầu trong một khung thời gian nhỏ mà không bị chặn IP. 

Tiếp theo, điều tốt nhất là thay đổi máy chủ proxy dựa trên quốc gia. Bạn chỉ cần thêm ISO_CODE quốc gia vào cuối xác thực IP hoặc xác thực tên người dùng và mật khẩu. 

Đề xuất đọc:

Scrape YouTube Comments – 5 bước đơn giản 8 công cụ thu thập dữ liệu web Python tốt nhất năm 2023 Thu thập dữ liệu web cho các bài viết tin tức bằng Python – Cách tốt nhất năm 2023

Câu hỏi thường gặp:

1. Săn giá là gì?
Quét giá, như tên gọi của nó, là quá trình trích xuất giá của một sản phẩm hoặc dịch vụ trực tuyến để thực hiện bất kỳ phân tích nào, chẳng hạn như phân tích đối thủ cạnh tranh, để cải thiện chiến lược tiếp thị. Tự động hóa quá trình quét có thể giúp bạn giảm thời gian và tài nguyên, và bạn có thể làm điều đó với sự trợ giúp của python.
2. Proxy nào là tốt nhất để thu thập dữ liệu web nhằm so sánh giá?
Proxy tốt nhất để thực hiện thu thập dữ liệu web nhằm so sánh giá là "proxy dân dụng". Lý do là vì proxy dân dụng là proxy luân phiên, nghĩa là địa chỉ IP của bạn sẽ được thay đổi động theo thời gian, điều này có thể hữu ích để đánh lừa máy chủ bằng cách gửi nhiều yêu cầu trong một khung thời gian ngắn mà không bị chặn IP.
3. Việc thu thập dữ liệu web để so sánh giá có hợp pháp không?
Câu trả lời là có. Bạn có thể lấy giá từ một trang web thương mại điện tử vì mọi thông tin đều được công khai, nghĩa là mọi dữ liệu công khai đều có thể được lấy.

Phần kết luận

Bài viết này khám phá thêm một điều kỳ diệu nữa của web scraping, tức là "So sánh giá". Không chỉ vậy, chúng tôi còn xây dựng một công cụ có thể thực hiện công việc so sánh giá cho bạn và giúp bạn cập nhật xu hướng thị trường. Bài viết này hy vọng sẽ cung cấp đủ thông tin về web scraping để so sánh giá một cách dễ dàng. Máy chủ proxy là người bạn đồng hành tốt nhất cho web scraping. ProxyScrape cung cấp proxy dân dụng tốt nhất trong lớp cho việc thu thập dữ liệu web của bạn để so sánh giá các dự án. Bạn có thể kiểm tra proxy dân dụng tốt nhất tại đây .