Đôi khi chúng ta cần trích xuất thông tin từ các trang web. Chúng tôi có thể trích xuất dữ liệu từ các trang web bằng cách sử dụng API có sẵn. Nhưng có những trang web không có API
Tại đây, tính năng quét web phát huy tác dụng
Python đang được sử dụng rộng rãi trong việc quét web, vì nó cung cấp sự dễ dàng trong việc viết logic cốt lõi. Cho dù bạn là nhà khoa học dữ liệu, nhà phát triển, kỹ sư hay người làm việc với lượng dữ liệu lớn, việc quét web bằng Python đều giúp ích rất nhiều
Nếu không có cách trực tiếp để tải xuống dữ liệu, bạn chỉ còn lại công việc quét web bằng Python vì nó có thể trích xuất lượng dữ liệu khổng lồ mà không gặp bất kỳ rắc rối nào và trong một khoảng thời gian ngắn.
Trong hướng dẫn này, chúng ta sẽ xem xét việc cạo bằng một số thư viện dựa trên Python rất mạnh như BeautifulSoup và Selenium.
BeautifulSoup và urllib
BeautifulSoup là một thư viện Python để lấy dữ liệu ra khỏi các tệp HTML và XML. Nhưng nó không lấy dữ liệu trực tiếp từ một trang web. Vì vậy, ở đây chúng tôi sẽ sử dụng thư viện urllib để trích xuất trang web
Trước tiên, chúng ta cần cài đặt plugin BeautifulSoup4 quét web Python trong hệ thống của mình bằng lệnh sau
$ sudo pip install BeatifulSoup4
$ pip install lxml
HOẶC
$ sudo apt-get install python3-bs4
$ sudo apt-get install python-lxml
Vì vậy, ở đây tôi sẽ trích xuất trang chủ từ một trang web https. //www. công nghệ thực vật. com
from urllib.request import urlopen
từ bs4 nhập BeautifulSoup
Chúng tôi nhập gói mà chúng tôi sẽ sử dụng trong chương trình của mình. Bây giờ chúng tôi sẽ trích xuất trang web của mình bằng cách sử dụng sau
response = urlopen['//www.botreetechnologies.com/case-studies']
Beautiful Soup không lấy dữ liệu trực tiếp từ nội dung mà chúng tôi vừa trích xuất. Vì vậy, chúng tôi cần phân tích nó trong dữ liệu html/XML
data = BeautifulSoup[response.read[],'lxml']
Ở đây chúng tôi đã phân tích nội dung html trang web của mình thành XML bằng cách sử dụng trình phân tích cú pháp lxml
Như bạn có thể thấy trên trang web của chúng tôi, có rất nhiều nghiên cứu điển hình. Tôi chỉ muốn đọc tất cả các nghiên cứu điển hình có sẵn ở đây
Có một tiêu đề nghiên cứu trường hợp ở trên cùng và sau đó là một số chi tiết liên quan đến trường hợp đó. Tôi muốn trích xuất tất cả thông tin đó
Chúng tôi có thể trích xuất một phần tử dựa trên thẻ, lớp, id, Xpath, v.v.
Bạn có thể lấy lớp của một phần tử bằng cách nhấp chuột phải vào phần tử đó và chọn kiểm tra phần tử
case_studies = data.find["div", { "class" : "content-section" }]
Trong trường hợp có nhiều phần tử của lớp này trong trang của chúng tôi, nó sẽ chỉ trả về đầu tiên. Vì vậy, nếu bạn muốn lấy tất cả các phần tử có lớp này, hãy sử dụng phương thức findAll[]
case_studies = data.find["div", { "class" : "content-section" }]
Now we have div having class ‘content-section’ containing its child elements. We will get all
tags to get our ‘TITLE’ and tag to get all children, the $ pip install lxml
0 elements.$ pip install lxml
1
case_stud_details = case_stud. tìm ['ul']. findAll['li']
Bây giờ chúng ta có danh sách tất cả con của phần tử $ pip install lxml
2
Để lấy phần tử đầu tiên từ danh sách con, chỉ cần viết
$ pip install lxml
3
Chúng ta có thể trích xuất tất cả các thuộc tính của một phần tử. tôi. e chúng ta có thể lấy văn bản cho phần tử này bằng cách sử dụng
$ pip install lxml
4
Nhưng ở đây tôi muốn nhấp vào 'TITLE' của bất kỳ nghiên cứu điển hình nào và mở trang chi tiết để lấy tất cả thông tin
Vì chúng tôi muốn tương tác với trang web để có được nội dung động, chúng tôi cần bắt chước tương tác bình thường của người dùng. Hành vi như vậy không thể đạt được bằng cách sử dụng BeautifulSoup hoặc urllib, do đó chúng tôi cần một webdriver để thực hiện việc này
Webdriver về cơ bản tạo ra một cửa sổ trình duyệt mới mà chúng ta có thể kiểm soát một cách thực dụng. Nó cũng cho phép chúng tôi nắm bắt các sự kiện của người dùng như nhấp và cuộn
Selenium là một webdriver như vậy
Trình quản lý web Selenium
Selenium webdriver chấp nhận lệnh và gửi chúng đến trình duyệt và lấy kết quả
Bạn có thể cài đặt selen trong hệ thống của mình bằng lệnh đơn giản sau
$ pip install lxml
5
Để sử dụng, chúng tôi cần nhập selen trong tập lệnh Python của mình
từ Selenium nhập webdriver
Tôi đang sử dụng Firefox webdriver trong hướng dẫn này. Bây giờ chúng tôi đã sẵn sàng trích xuất trang web của mình và chúng tôi có thể thực hiện việc này bằng cách sử dụng fthe sau
$ pip install lxml
6
bản thân. trình duyệt = webdriver. firefox[]
Bây giờ chúng ta cần nhấp vào 'Case-STUDIES' để mở trang đó
Chúng ta có thể nhấp vào phần tử selen bằng cách sử dụng đoạn mã sau
$ pip install lxml
7
Bây giờ chúng tôi được chuyển sang trang nghiên cứu điển hình và ở đây tất cả các nghiên cứu điển hình được liệt kê cùng với một số thông tin
Ở đây, tôi muốn nhấp vào từng nghiên cứu điển hình và mở trang chi tiết để trích xuất tất cả thông tin có sẵn
Vì vậy, tôi đã tạo một danh sách các liên kết cho tất cả các nghiên cứu điển hình và tải chúng lần lượt từng cái một
Để tải trang trước, bạn có thể sử dụng đoạn mã sau
$ pip install lxml
8
Kịch bản cuối cùng để sử dụng Selenium sẽ như sau
Và chúng ta đã hoàn tất, Bây giờ bạn có thể trích xuất các trang web tĩnh hoặc tương tác với các trang web bằng đoạn mã trên
Phần kết luận. Web Scraping Python là một kỹ năng thiết yếu cần có
Ngày nay, hơn bao giờ hết, các công ty đang làm việc với lượng dữ liệu khổng lồ. Học cách cạo dữ liệu trong các dự án cạo web Python sẽ đưa bạn đi một chặng đường dài. Trong hướng dẫn này, bạn học quét web bằng Python với món súp tuyệt đẹp.
Cùng với đó, quét web Python với Selenium cũng là một kỹ năng hữu ích. Các công ty cần các kỹ sư dữ liệu có thể trích xuất dữ liệu và cung cấp cho họ để thu thập những hiểu biết hữu ích. Bạn có cơ hội thành công cao trong việc trích xuất dữ liệu nếu bạn đang làm việc trên các dự án quét web Python
Nếu bạn muốn thuê các nhà phát triển Python để quét web, hãy liên hệ với BoTree Technologies. Chúng tôi có một đội ngũ kỹ sư là những chuyên gia trong lĩnh vực cạo web. Gọi cho chúng tôi ngay hôm nay
$ pip install lxml
0 elements.$ pip install lxml
1
case_stud_details = case_stud. tìm ['ul']. findAll['li']
Bây giờ chúng ta có danh sách tất cả con của phần tử $ pip install lxml
2
Để lấy phần tử đầu tiên từ danh sách con, chỉ cần viết
$ pip install lxml
3
Chúng ta có thể trích xuất tất cả các thuộc tính của một phần tử. tôi. e chúng ta có thể lấy văn bản cho phần tử này bằng cách sử dụng
$ pip install lxml
4
Nhưng ở đây tôi muốn nhấp vào 'TITLE' của bất kỳ nghiên cứu điển hình nào và mở trang chi tiết để lấy tất cả thông tin
Vì chúng tôi muốn tương tác với trang web để có được nội dung động, chúng tôi cần bắt chước tương tác bình thường của người dùng. Hành vi như vậy không thể đạt được bằng cách sử dụng BeautifulSoup hoặc urllib, do đó chúng tôi cần một webdriver để thực hiện việc này
Webdriver về cơ bản tạo ra một cửa sổ trình duyệt mới mà chúng ta có thể kiểm soát một cách thực dụng. Nó cũng cho phép chúng tôi nắm bắt các sự kiện của người dùng như nhấp và cuộn
Selenium là một webdriver như vậy
Trình quản lý web Selenium
Selenium webdriver chấp nhận lệnh và gửi chúng đến trình duyệt và lấy kết quả
Bạn có thể cài đặt selen trong hệ thống của mình bằng lệnh đơn giản sau
$ pip install lxml
5
Để sử dụng, chúng tôi cần nhập selen trong tập lệnh Python của mình
từ Selenium nhập webdriver
Tôi đang sử dụng Firefox webdriver trong hướng dẫn này. Bây giờ chúng tôi đã sẵn sàng trích xuất trang web của mình và chúng tôi có thể thực hiện việc này bằng cách sử dụng fthe sau
$ pip install lxml
6
bản thân. trình duyệt = webdriver. firefox[]
Bây giờ chúng ta cần nhấp vào 'Case-STUDIES' để mở trang đó
Chúng ta có thể nhấp vào phần tử selen bằng cách sử dụng đoạn mã sau
$ pip install lxml
7
Bây giờ chúng tôi được chuyển sang trang nghiên cứu điển hình và ở đây tất cả các nghiên cứu điển hình được liệt kê cùng với một số thông tin
Ở đây, tôi muốn nhấp vào từng nghiên cứu điển hình và mở trang chi tiết để trích xuất tất cả thông tin có sẵn
Vì vậy, tôi đã tạo một danh sách các liên kết cho tất cả các nghiên cứu điển hình và tải chúng lần lượt từng cái một
Để tải trang trước, bạn có thể sử dụng đoạn mã sau
$ pip install lxml
8
Kịch bản cuối cùng để sử dụng Selenium sẽ như sau
Và chúng ta đã hoàn tất, Bây giờ bạn có thể trích xuất các trang web tĩnh hoặc tương tác với các trang web bằng đoạn mã trên
Phần kết luận. Web Scraping Python là một kỹ năng thiết yếu cần có
Ngày nay, hơn bao giờ hết, các công ty đang làm việc với lượng dữ liệu khổng lồ. Học cách cạo dữ liệu trong các dự án cạo web Python sẽ đưa bạn đi một chặng đường dài. Trong hướng dẫn này, bạn học quét web bằng Python với món súp tuyệt đẹp.
Cùng với đó, quét web Python với Selenium cũng là một kỹ năng hữu ích. Các công ty cần các kỹ sư dữ liệu có thể trích xuất dữ liệu và cung cấp cho họ để thu thập những hiểu biết hữu ích. Bạn có cơ hội thành công cao trong việc trích xuất dữ liệu nếu bạn đang làm việc trên các dự án quét web Python
Nếu bạn muốn thuê các nhà phát triển Python để quét web, hãy liên hệ với BoTree Technologies. Chúng tôi có một đội ngũ kỹ sư là những chuyên gia trong lĩnh vực cạo web. Gọi cho chúng tôi ngay hôm nay