Thu thập dữ liệu web Python

Hãy tưởng tượng bạn phải lấy một lượng lớn dữ liệu từ các trang web và bạn muốn thực hiện việc đó càng nhanh càng tốt. Làm thế nào bạn sẽ làm điều đó mà không cần truy cập thủ công từng trang web và lấy dữ liệu? . Web Scraping chỉ làm cho công việc này dễ dàng hơn và nhanh hơn.  

Khóa học đầy đủ về Python – Học Python trong 12 giờ. Hướng dẫn Python cho người mới bắt đầu. Edureka

Khóa học đầy đủ về Python của Edureka này giúp bạn trở thành bậc thầy về các khái niệm lập trình Python cơ bản và nâng cao

Trong bài viết này về Tìm kiếm trên web bằng Python, bạn sẽ tìm hiểu tóm tắt về cách tìm kiếm trên web và xem cách trích xuất dữ liệu từ một trang web bằng bản minh họa. Tôi sẽ đề cập đến các chủ đề sau

Tại sao Web Scraping được sử dụng?

Quét web được sử dụng để thu thập thông tin lớn từ các trang web. Nhưng tại sao ai đó phải thu thập dữ liệu lớn như vậy từ các trang web?

  • So sánh giá. Các dịch vụ như ParseHub sử dụng quét web để thu thập dữ liệu từ các trang web mua sắm trực tuyến và sử dụng dữ liệu đó để so sánh giá của sản phẩm
  • Thu thập địa chỉ email. Nhiều công ty sử dụng email làm phương tiện tiếp thị, sử dụng quét web để thu thập ID email và sau đó gửi email hàng loạt
  • Phương tiện truyền thông xã hội cạo. Quét web được sử dụng để thu thập dữ liệu từ các trang web Truyền thông xã hội như Twitter để tìm ra xu hướng nào
  • Nghiên cứu và phát triển. Quét web được sử dụng để thu thập một bộ dữ liệu lớn [Thống kê, Thông tin chung, Nhiệt độ, v.v. ] từ các trang web được phân tích và sử dụng để thực hiện Khảo sát hoặc cho R&D
  • danh sách công việc. Thông tin chi tiết về cơ hội việc làm, các cuộc phỏng vấn được thu thập từ các trang web khác nhau và sau đó được liệt kê ở một nơi để người dùng có thể dễ dàng truy cập

Quét web là gì?

Quét web là một phương pháp tự động được sử dụng để trích xuất một lượng lớn dữ liệu từ các trang web. Dữ liệu trên các trang web không có cấu trúc. Quét web giúp thu thập những dữ liệu phi cấu trúc này và lưu trữ ở dạng có cấu trúc. Có nhiều cách khác nhau để cạo các trang web như Dịch vụ trực tuyến, API hoặc viết mã của riêng bạn. Trong bài viết này, chúng ta sẽ xem cách triển khai quét web bằng python.  

Quét web có hợp pháp không?

Nói về việc quét web có hợp pháp hay không, một số trang web cho phép quét web và một số thì không. Để biết một trang web có cho phép quét web hay không, bạn có thể xem “robot của trang web. txt” tập tin. Bạn có thể tìm thấy tệp này bằng cách nối thêm “/robots. txt” vào URL mà bạn muốn cạo. Ví dụ này, tôi đang cạo trang web Flipkart. Vì vậy, để xem “robot. txt”, URL là www. xe lật. com/robot. txt

Nhận kiến ​​thức chuyên sâu về Python cùng với các ứng dụng đa dạng của nó Biết thêm

Tại sao Python tốt cho việc quét web?

Dưới đây là danh sách các tính năng của Python giúp nó phù hợp hơn cho việc quét web

  • Dễ sử dụng. Lập trình Python rất đơn giản để viết mã. Bạn không cần phải thêm dấu chấm phẩy “;” . Điều này làm cho nó bớt lộn xộn và dễ sử dụng
  • Bộ sưu tập lớn các thư viện. Python có một bộ thư viện khổng lồ như Numpy, Matlplotlib, Pandas, v.v. , cung cấp các phương thức và dịch vụ cho các mục đích khác nhau. Do đó, nó phù hợp để quét web và để thao tác thêm dữ liệu được trích xuất
  • gõ động. Trong Python, bạn không phải định nghĩa kiểu dữ liệu cho biến, bạn có thể trực tiếp sử dụng biến ở bất cứ đâu cần thiết. Điều này tiết kiệm thời gian và làm cho công việc của bạn nhanh hơn
  • Cú pháp dễ hiểu. Cú pháp Python dễ hiểu chủ yếu vì đọc mã Python rất giống với đọc một câu lệnh bằng tiếng Anh. Nó rõ ràng và dễ đọc, đồng thời thụt đầu dòng được sử dụng trong Python cũng giúp người dùng phân biệt giữa các phạm vi/khối khác nhau trong mã.  
  • Mã nhỏ, nhiệm vụ lớn. Quét web được sử dụng để tiết kiệm thời gian. Nhưng bạn dành nhiều thời gian hơn để viết mã thì có ích gì? . Trong Python, bạn có thể viết các mã nhỏ để thực hiện các tác vụ lớn. Do đó, bạn tiết kiệm thời gian ngay cả khi đang viết mã
  • Cộng đồng. Điều gì sẽ xảy ra nếu bạn gặp khó khăn khi viết mã? . Cộng đồng Python có một trong những cộng đồng lớn nhất và tích cực nhất, nơi bạn có thể tìm kiếm sự trợ giúp từ

Tìm hiểu khóa đào tạo Python của chúng tôi tại các thành phố/quốc gia hàng đầu

Làm thế nào để bạn cạo dữ liệu từ một trang web?

Khi bạn chạy mã để quét web, một yêu cầu sẽ được gửi tới URL mà bạn đã đề cập. Để đáp ứng yêu cầu, máy chủ sẽ gửi dữ liệu và cho phép bạn đọc trang HTML hoặc XML. Sau đó, mã sẽ phân tích cú pháp trang HTML hoặc XML, tìm dữ liệu và trích xuất dữ liệu đó.  

Để trích xuất dữ liệu bằng cách quét web với python, bạn cần làm theo các bước cơ bản sau

  1. Tìm URL mà bạn muốn cạo
  2. Kiểm tra Trang
  3. Tìm dữ liệu bạn muốn trích xuất
  4. Viết mã
  5. Chạy mã và giải nén dữ liệu
  6. Lưu trữ dữ liệu ở định dạng cần thiết

Bây giờ chúng ta hãy xem cách trích xuất dữ liệu từ trang web Flipkart bằng Python

Học Python, Deep Learning, NLP, Trí tuệ nhân tạo, Học máy với các khóa học AI và ML này, chương trình chứng chỉ PG Diploma của NIT Warangal

Thư viện được sử dụng để quét web

Như chúng ta biết, Python có nhiều ứng dụng khác nhau và có các thư viện khác nhau cho các mục đích khác nhau. Trong phần trình diễn tiếp theo của chúng tôi, chúng tôi sẽ sử dụng các thư viện sau

  • selen. Selenium là một thư viện thử nghiệm web. Nó được sử dụng để tự động hóa các hoạt động của trình duyệt
  • ĐẹpSúp. Beautiful Soup là gói Python để phân tích tài liệu HTML và XML. Nó tạo ra các cây phân tích hữu ích để trích xuất dữ liệu dễ dàng
  • gấu trúc. Pandas là một thư viện được sử dụng để thao tác và phân tích dữ liệu. Nó được sử dụng để trích xuất dữ liệu và lưu trữ ở định dạng mong muốn.  

Đăng ký kênh YouTube của chúng tôi để nhận thông tin cập nhật mới

Ví dụ quét web. Cạo trang web Flipkart

điều kiện tiên quyết

  • Trăn 2. x hoặc Python 3. x đã cài đặt thư viện Selenium, BeautifulSoup, pandas
  • trình duyệt google chrome
  • Hệ điều hành Ubuntu

Bắt đầu nào

Bước 1. Tìm URL mà bạn muốn cạo

Trong ví dụ này, chúng tôi sẽ cạo trang web Flipkart để trích xuất Giá, Tên và Xếp hạng của Máy tính xách tay. URL của trang này là https. //www. xe lật. com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11. sản phẩmThẻ. PMU_V2

Bước 2. Kiểm tra trang

Dữ liệu thường được lồng trong các thẻ. Vì vậy, chúng tôi kiểm tra trang để xem dữ liệu mà chúng tôi muốn thu thập được lồng trong thẻ nào. Để kiểm tra trang, chỉ cần nhấp chuột phải vào phần tử và nhấp vào “Kiểm tra”

Khi bạn nhấp vào tab “Kiểm tra”, bạn sẽ thấy “Hộp kiểm tra trình duyệt” mở ra

Bước 3. Tìm dữ liệu bạn muốn trích xuất

Hãy trích xuất Giá, Tên và Xếp hạng tương ứng trong thẻ “div”

Bước 4. Viết mã

Đầu tiên, hãy tạo một tệp Python. Để thực hiện việc này, hãy mở thiết bị đầu cuối trong Ubuntu và nhập geditwith. phần mở rộng py

Tôi sẽ đặt tên cho tệp của mình là “web-s”. Đây là lệnh

gedit web-s.py

Bây giờ, hãy viết mã của chúng tôi trong tệp này.  

Đầu tiên, chúng ta hãy nhập tất cả các thư viện cần thiết

from selenium import webdriver
from BeautifulSoup import BeautifulSoup
import pandas as pd

Để cấu hình webdriver sử dụng trình duyệt Chrome chúng ta phải đặt đường dẫn đến chromedriver

driver = webdriver.Chrome["/usr/lib/chromium-browser/chromedriver"]

Tham khảo đoạn mã dưới đây để mở URL

products=[] #List to store name of the product
prices=[] #List to store price of the product
ratings=[] #List to store rating of the product
driver.get["//www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniq"]

Bây giờ chúng tôi đã viết mã để mở URL, đã đến lúc trích xuất dữ liệu từ trang web. Như đã đề cập trước đó, dữ liệu chúng tôi muốn trích xuất được lồng vào

thẻ. Vì vậy, tôi sẽ tìm các thẻ div có tên lớp tương ứng đó, trích xuất dữ liệu và lưu trữ dữ liệu trong một biến. Tham khảo mã dưới đây.

content = driver.page_source
soup = BeautifulSoup[content]
for a in soup.findAll['a',href=True, attrs={'class':'_31qSD5'}]:
name=a.find['div', attrs={'class':'_3wU53n'}]
price=a.find['div', attrs={'class':'_1vC4OE _2rQ-NK'}]
rating=a.find['div', attrs={'class':'hGSR34 _2beYZw'}]
products.append[name.text]
prices.append[price.text]
ratings.append[rating.text] 

Bước 5. Chạy mã và giải nén dữ liệu

Để chạy mã, sử dụng lệnh dưới đây

python web-s.py

Bước 6. Lưu trữ dữ liệu ở định dạng bắt buộc

Sau khi giải nén dữ liệu, bạn có thể muốn lưu trữ nó ở định dạng. Định dạng này thay đổi tùy thuộc vào yêu cầu của bạn. Đối với ví dụ này, chúng tôi sẽ lưu trữ dữ liệu được trích xuất ở định dạng CSV [Giá trị được phân tách bằng dấu phẩy]. Để làm điều này, tôi sẽ thêm các dòng sau vào mã của mình

df = pd.DataFrame[{'Product Name':products,'Price':prices,'Rating':ratings}] 
df.to_csv['products.csv', index=False, encoding='utf-8']

Bây giờ, tôi sẽ chạy lại toàn bộ mã

Tên tệp “products. csv” được tạo và tệp này chứa dữ liệu được trích xuất

Tôi hy vọng các bạn thích bài viết này về “Web Scraping với Python”. Tôi hy vọng blog này có nhiều thông tin và đã bổ sung giá trị cho kiến ​​thức của bạn. Bây giờ hãy tiếp tục và thử Web Scraping. Thử nghiệm với các mô-đun và ứng dụng khác nhau của Python.  

Nếu bạn muốn biết về Web Scraping With Python trên nền tảng Windows, thì video dưới đây sẽ giúp bạn hiểu cách thực hiện hoặc bạn cũng có thể tham gia khóa học Python Master của chúng tôi

Bạn có câu hỏi liên quan đến "dò web bằng Python"? . Diễn đàn và chúng tôi sẽ liên hệ lại với bạn sớm nhất hoặc bạn có thể tham gia Khóa đào tạo Python của chúng tôi tại Hobart ngay hôm nay

Để có kiến ​​thức chuyên sâu về ngôn ngữ Lập trình Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký tại đây để được đào tạo Python trực tuyến trực tiếp với sự hỗ trợ 24/7 và quyền truy cập trọn đời

Thu thập thông tin và quét web bằng Python là gì?

Thu thập dữ liệu web là một thành phần của quét web, logic của trình thu thập thông tin tìm các URL để được xử lý bởi mã trình quét . Trình thu thập dữ liệu web bắt đầu với một danh sách các URL để truy cập, được gọi là hạt giống. Đối với mỗi URL, trình thu thập thông tin sẽ tìm các liên kết trong HTML, lọc các liên kết đó dựa trên một số tiêu chí và thêm các liên kết mới vào hàng đợi.

Python có thể được sử dụng cho trình thu thập dữ liệu web không?

Tạo trình thu thập dữ liệu web bằng Scrapy cho Python. Phát triển trình thu thập dữ liệu web với Scrapy, một khung mạnh mẽ để trích xuất, xử lý và lưu trữ dữ liệu web . Nếu bạn muốn có cái nhìn tổng quan về web scraping bằng Python, hãy tham gia khóa học DataCamp's Web Scraping with Python.

Làm cách nào để tạo trình thu thập dữ liệu web bằng Python?

Quy trình làm việc cơ bản của trình thu thập dữ liệu web nói chung như sau. .
Nhận URL ban đầu. .
Trong khi thu thập dữ liệu trang web, chúng tôi cần tìm nạp nội dung HTML của trang, sau đó phân tích cú pháp để lấy URL của tất cả các trang được liên kết với trang này
Đặt các URL này vào hàng đợi;

Thu thập thông tin trang web có hợp pháp không?

Vậy nó hợp pháp hay bất hợp pháp? . Rốt cuộc, bạn có thể cạo hoặc thu thập dữ liệu trang web của riêng mình mà không gặp trở ngại nào. Các công ty khởi nghiệp thích nó vì đây là một cách rẻ và hiệu quả để thu thập dữ liệu mà không cần quan hệ đối tác. Web scraping and crawling aren't illegal by themselves. After all, you could scrape or crawl your own website, without a hitch. Startups love it because it's a cheap and powerful way to gather data without the need for partnerships.

Chủ Đề