Theo Statista, vào năm 2021, doanh số Thương mại điện tử bán lẻ lên tới 4.9 nghìn tỷ đô la Mỹ trên toàn thế giới. Đó là rất nhiều tiền, và người ta dự đoán rằng đến năm 2025, nó sẽ đạt mốc 7 nghìn tỷ đô la Mỹ. Như bạn có thể đoán, với tiềm năng doanh thu lớn này trong thương mại điện tử, sự cạnh tranh chắc chắn sẽ rất khốc liệt.
Theo Statista, vào năm 2021, doanh số Thương mại điện tử bán lẻ lên tới 4.9 nghìn tỷ đô la Mỹ trên toàn thế giới. Đó là rất nhiều tiền, và người ta dự đoán rằng đến năm 2025, nó sẽ đạt mốc 7 nghìn tỷ đô la Mỹ. Như bạn có thể đoán, với tiềm năng doanh thu lớn này trong thương mại điện tử, sự cạnh tranh chắc chắn sẽ rất khốc liệt.
Do đó, cần phải thích ứng với các xu hướng mới nhất để tồn tại và phát triển trong bầu không khí cực kỳ cạnh tranh này. Nếu bạn là người chơi trên thị trường, bước đầu tiên theo hướng này là phân tích đối thủ cạnh tranh của bạn. Một thành phần quan trọng của phân tích này là giá cả. So sánh giá của sản phẩm giữa các đối thủ cạnh tranh sẽ giúp bạn báo giá cạnh tranh nhất trên thị trường.
Ngoài ra, nếu bạn là người dùng cuối, bạn sẽ có thể khám phá mức giá thấp nhất cho bất kỳ sản phẩm nào. Nhưng, thách thức thực sự ở đây là nhiều trang web thương mại điện tử có sẵn trực tuyến. Không thể truy cập thủ công từng trang web và kiểm tra giá của mọi sản phẩm. Đây là lúc mã hóa máy tính phát huy tác dụng. Với sự trợ giúp của mã Python, chúng ta có thể trích xuất thông tin từ các trang web. Điều này làm cho việc cạo giá từ các trang web trở thành một cuộc dạo chơi trong công viên.
Bài viết này sẽ thảo luận về cách lấy giá từ các trang web từ một trang web Thương mại điện tử bằng Python làm ví dụ.
Vui lòng kiểm tra phần mà bạn muốn biết nhất.
Web Scraping có hợp pháp không?
Bước 1: Cài đặt các thư viện cần thiết:
Bước 2: Trích xuất dữ liệu web:
Bước 4: Lặp mã để lấy thêm dữ liệu:
Trước khi chúng ta đối phó với việc cạo giá từ các trang web, chúng ta phải thảo luận về định nghĩa và các yếu tố pháp lý đằng sau việc quét web.
Web scraping, còn được gọi là trích xuất dữ liệu web, sử dụng bot để thu thập thông tin qua một trang web mục tiêu và thu thập dữ liệu cần thiết. Khi bạn nghe thuật ngữ "web scraping", câu hỏi đầu tiên có thể xuất hiện trong đầu là liệu web scraping có hợp pháp hay không.
Câu trả lời này phụ thuộc vào một câu hỏi khác: "Bạn sẽ làm gì với dữ liệu được cạo?" Việc lấy dữ liệu từ các trang web khác để phân tích cá nhân là hợp pháp vì tất cả thông tin được hiển thị là dành cho tiêu dùng công cộng. Tuy nhiên, nếu dữ liệu bạn sử dụng để phân tích của riêng bạn ảnh hưởng đến chủ sở hữu ban đầu của dữ liệu dưới bất kỳ hình thức hoặc hình thức nào, thì đó là bất hợp pháp. Nhưng vào năm 2019, một tòa án liên bang Hoa Kỳ đã phán quyết rằng việc quét web không vi phạm luật hack.
Tóm lại, tốt hơn hết là bạn nên thực hành trích xuất dữ liệu từ các trang web không ảnh hưởng đến chủ sở hữu ban đầu của dữ liệu. Một điều khác cần lưu ý là chỉ cạo những gì bạn cần. Việc thu thập hàng tấn dữ liệu từ trang web có thể sẽ ảnh hưởng đến băng thông hoặc hiệu suất của trang web. Điều quan trọng là phải theo dõi yếu tố đó.
Nếu bạn không rõ về cách kiểm tra xem trang web có cho phép quét web hay không, có nhiều cách để làm điều đó:
Kiểm tra tệp Robot.txt - Tệp văn bản mà con người có thể đọc được này cung cấp thông tin về lượng dữ liệu bạn có thể cạo từ các trang web nhất định. Một tệp văn bản robot giúp bạn xác định những gì cần cạo và những gì không cạo. Các nhà xuất bản khác nhau của các trang web tuân theo các định dạng khác nhau cho các tệp robot của họ. Bạn nên kiểm tra tệp trước khi thực hiện quá trình cạo. Tệp sơ đồ trang web - Tệp sơ đồ trang web là tệp chứa thông tin cần thiết về trang web, âm thanh, video và các tệp khác về trang web. Công cụ tìm kiếm đọc tệp này để thu thập dữ liệu trang hiệu quả hơn. Kích thước của trang web - Như đã đề cập ở trên, việc thu thập dữ liệu hàng tấn ảnh hưởng đến hiệu quả của trang web và hiệu quả của trình cạp. Theo dõi kích thước của trang web. LƯU Ý: Ở đây, kích thước của trang web đề cập đến số lượng trang có sẵn. Kiểm tra Điều khoản và Điều kiện - Luôn luôn là một ý tưởng tốt để kiểm tra Điều khoản và Điều kiện của trang web mà bạn muốn thu thập dữ liệu. Các Điều khoản và Điều kiện có thể sẽ có một phần liên quan đến việc quét web, bao gồm lượng dữ liệu bạn có thể cạo và công nghệ họ sử dụng trong trang web của họ.
Bây giờ, bạn nên có một sự hiểu biết cơ bản về web scraping và các yếu tố pháp lý đằng sau web scraping. Hãy để chúng tôi xem cách chúng tôi có thể xây dựng một trình quét web đơn giản để tìm giá của máy tính xách tay từ một trang web Thương mại điện tử. Ngôn ngữ Python, cùng với sổ ghi chép Jupyter, được sử dụng để xây dựng trình cạp.
5 bước để cạo giá từ các trang web bằng Python
Trong Python, một thư viện có tên "BeautifulSoup" thu thập dữ liệu từ các trang web khác để lấy giá từ các trang web.
Cùng với BeautifulSoup, chúng tôi đang sử dụng "Pandas" và "requests". Pandas được sử dụng để tạo khung dữ liệu và thực hiện phân tích dữ liệu cấp cao và yêu cầu là thư viện HTTP giúp yêu cầu dữ liệu từ các trang web. Để cài đặt các thư viện nói trên bằng python, hãy sử dụng mã sau được hiển thị bên dưới:
từ bs4 nhập khẩu BeautifuSoup
Yêu cầu nhập khẩu
Nhập khẩu gấu trúc dưới dạng PD
Nhập urllib.parse
Để thực hành tốt hơn, trong ví dụ này, tên trang web không được hiển thị. Thực hiện theo các hướng dẫn pháp lý quét web được đề cập ở trên và các bước sau đây sẽ cung cấp cho bạn kết quả. Khi bạn có được địa chỉ trang web, bạn có thể lưu nó trong một biến và kiểm tra xem yêu cầu có được chấp nhận hay không. Để trích xuất dữ liệu, hãy làm theo mã python được hiển thị bên dưới:
seed_url = 'example.com/laptops'response = yêu cầu. get(seed_url) #Checking yêu cầu có được chấp nhận hay khôngphản hồi.status_code #200 là mã tham chiếu đến OK Status, có nghĩa là yêu cầu được chấp nhận
200
status_code sẽ cung cấp cho bạn kết quả, cho dù chúng tôi có nhận được yêu cầu hay không. Ở đây, status_code '200' có nghĩa là yêu cầu được chấp nhận. Bây giờ, chúng tôi đã nhận được yêu cầu. Bước tiếp theo là phân tích dữ liệu.
Phân tích cú pháp là quá trình chuyển đổi định dạng này sang định dạng khác. Trong trường hợp này, phân tích cú pháp HTML được thực hiện, chuyển đổi dữ liệu (HTML) thành định dạng nội bộ (python) để môi trường có thể chạy dữ liệu. Hình ảnh sau đây cho thấy mã python để thực hiện quá trình phân tích cú pháp dữ liệu bằng thư viện BeautifulSoup:
súp = BeautifulSoup (response.content, 'html.parser')
Bằng cách phân tích cú pháp các trang web, python nhận được tất cả dữ liệu như tên, thẻ, giá, chi tiết hình ảnh và chi tiết bố cục trang.
Như đã đề cập ở trên, mục tiêu của chúng tôi là tìm giá của máy tính xách tay trên một trang web thương mại điện tử. Các thông tin cần thiết cho ví dụ này là tên của máy tính xách tay và giá của nó. Để tìm thấy điều đó, hãy truy cập trang web bạn muốn loại bỏ. Nhấp chuột phải vào trang web và chọn "tùy chọn kiểm tra". Bạn sẽ thấy một thiết bị đầu cuối như thế này:
Sử dụng tùy chọn được đánh dấu để di chuột qua tên, giá và vùng chứa máy tính xách tay. Nếu bạn làm điều đó, bạn có thể thấy mã div được tô sáng trong thiết bị đầu cuối. Từ đó, bạn có thể nhận được thông tin chi tiết về lớp học. Khi bạn nhận được chi tiết lớp, hãy nhập tất cả thông tin vào mã python bên dưới.
results = soup.find_all('div', {'class':'item-container'})
len(results)
results[1]
#NECESSARY DATA:
#Name and Price of the item
Name_of_the_Item= soup.find('a', {'class':'item-title'}).get_text()
print(Name_of_the_Item)
price=soup.find('li', {'class':'price-current'}).get_text()
print(price)
Bây giờ bạn đã có giá cho một máy tính xách tay duy nhất. Nếu bạn cần 10 máy tính xách tay thì sao? Có thể bằng cách sử dụng cùng một mã trong vòng lặp. Mã Python để thực thi vòng lặp for được hiển thị bên dưới.
Name_of_the_item = []
Price_of_the_item = []
for soup in results:
try:
Name_of_the_item.append(soup.find('a', {'class':'item-title'}).get_text())
except:
Name_of_the_item.append('n/a')
try:
Price_of_the_item.append(soup.find('li', {'class':'price-current'}).get_text())
except:
Price_of_the_item.append('n/a')
print(Name_of_the_item)
print(Price_of_the_item)
Bây giờ tất cả các bước để quét web, chúng ta hãy xem đầu ra trông như thế nào.
Đây không phải là một định dạng có thể đọc được. Để chuyển đổi định dạng này thành định dạng có thể đọc được, tốt nhất là định dạng bảng (khung dữ liệu), bạn có thể sử dụng thư viện gấu trúc. Mã python được hiển thị bên dưới về cách thực hiện bước này.
#Creating a dataframe
product_details=pd.DataFrame({'Name': Name_of_the_item, 'Price':Price_of_the_item})
product_details.head(10)
Bây giờ nó có vẻ dễ đọc. Bước cuối cùng là lưu khung dữ liệu này trong tệp CSV để phân tích. Mã python để lưu khung dữ liệu sang định dạng CSV được hiển thị bên dưới.
product_details.to_csv("Web-scraping.csv")
Với điều này, bạn có thể thực hiện phân tích cạnh tranh đơn giản, tập trung vào giá của sản phẩm. Thay vì thực hiện thủ công, quét web tự động bằng python là một cách hiệu quả và giúp bạn tiết kiệm rất nhiều thời gian.
Như đã thảo luận ở trên về cách kiểm tra xem trang web có cho phép quét web hay không, proxy sẽ giúp bạn giải quyết vấn đề.
Proxy giúp bạn che giấu địa chỉ IP cục bộ của mình và có thể giúp bạn ẩn danh trực tuyến. Làm như vậy có thể giúp bạn cạo dữ liệu từ các trang web mà không gặp rắc rối. ProxyScrape là nơi tốt nhất để có được proxy cao cấp, cũng như proxy miễn phí. Ưu điểm của việc sử dụng ProxyScrape là:
Trong bài viết này, chúng ta đã thấy cách cạo giá từ các trang web bằng cách sử dụng python. Web scraping là một cách hiệu quả để có được dữ liệu trực tuyến. Hầu hết các Kickstarters đang sử dụng web scraping để có được dữ liệu cần thiết bằng cách làm theo tất cả các nguyên tắc đạo đức mà không tốn nhiều thời gian và nguồn lực. Các công cụ quét web chuyên dụng có sẵn trực tuyến cho các thông tin khác nhau, chẳng hạn như giá cả và thông tin sản phẩm. Bạn có thể truy cập vào đây để tìm hiểu thêm về các công cụ quét web.
Bài viết này hy vọng đã cung cấp đủ thông tin để trả lời câu hỏi, "làm thế nào để cạo giá từ các trang web?" Nhưng thực tế là không có cách nào chắc chắn để cạo giá từ các trang web. Bạn có thể sử dụng các công cụ quét web chuyên dụng để cạo giá từ các trang web hoặc tạo các tập lệnh python của riêng bạn để cạo giá từ các trang web. Dù bằng cách nào, bạn có thể tiết kiệm thời gian và thu thập nhiều dữ liệu mà không gặp khó khăn.
DISCLAIMER: Bài viết này là hoàn toàn cho mục đích học tập. Nếu không tuân theo các hướng dẫn thích hợp, thực hiện quét web có thể được coi là một hoạt động bất hợp pháp. Bài viết này không hỗ trợ quét web bất hợp pháp dưới bất kỳ hình thức hoặc hình thức nào.