Hướng Dẫn Lấy Dữ Liệu Từ Web Bằng Python Dễ Hiểu - MCI
Có thể bạn quan tâm
Khóa học - Chương trình học theo từng môn
- Python Foundation in Data Analytics
- Python for Machine Learning
- SQL for Newbies: Data Analysis for Beginners
- Database and SQL for Data Science
- Analyzing and Visualizing Data on Power BI
- Applying Power BI In Business Intelligence
- Mastering VBA: From Basics to Applications
- Excel for Business Intelligence Analyst
- Mastering Data Warehouse & Data Lake: From Basics to Applications
- AI Coaching 1:1
- Xem thêm
- Combo Power BI Level 1 & Level 2
- Combo Python Level 1 & Level 2
- Combo SQL Level 1 & Level 2
- Business Analyst
- Xem thêm
- Data Analyst Professional (Data Analyst with Python Track)
- Business Intelligence Track
- Business Analyst Fast Track
- Data Engineer Track
- AI Engineer Track
- Data Foundation Track
- AI Mastery 2026: Hệ thống hóa – Tự động hóa – Tăng tốc công việc
- Xem thêm
- Đào tạo doanh nghiệp
- Doanh nghiệp đối tác
- Thiết kế Dashboard
- Lịch đào tạo
- Giảng viên
- Câu hỏi thường gặp
- Dự án
- Thành tích
- Tài khoản học viên
- Bài viết
- Sự kiện
- Học viện Công nghệ MCI
- Tuyển dụng MCI
- Liên hệ
Trang chủ
KHÓA HỌC
DOANH NGHIỆP
LỊCH ĐÀO TẠO
HỌC VIÊN
BÀI VIẾT
VỀ CHÚNG TÔI
Tìm kiếm
Đăng nhập
- Ms. Khánh Ly 0352 433 233
Đăng nhập bằng tài khoản MCI của bạn
Remember Đăng nhậpForgot password? Click Here
Đăng nhập với
Tạo tài khoản MCI Để sử dụng đầy đủ tính năng học lập trình, phân tích dữ liệu và tham gia cộng đồng hơn 500,000 thành viên
Username: First name: Last name: Email: Password: Đăng kýTạo tài khoản với
Đăng xuất
Bạn có chắc chắn muốn đăng xuất không? Hủy OK Trang chủ>  Blog >  Kiến thức chuyên môn >  Hướng Dẫn Lấy Dữ Liệu Từ Web Bằng Python Dễ HiểuHướng Dẫn Lấy Dữ Liệu Từ Web Bằng Python Dễ Hiểu
Hiện nay hầu hết các doanh nghiệp, tổ chức kinh doanh đều có nhiều hoạt động mạnh mẽ trên các nền tảng website và điều đó dẫn tới việc một khối lượng rất lớn dữ liệu được liên tục tạo ra trên nền tảng website. Để phục vụ việc học tập nghiên cứu cũng như phân tích dữ liệu cho quá trình đưa ra các quyết định kinh doanh, bạn có thể lấy dữ liệu từ web bằng python theo các bước dưới đây:
  27,049 lượt xemNội dung bài viết
Hướng dẫn cách lấy dữ liệu từ web bằng python dễ hiểu, sử dụng module request và tạo hàm để tái sử dụng khi cần
Xem nhanh- Bước 1: Cài đặt module (hướng dẫn cho cmd Window)
- Bước 2: Crawl dữ liệu từ danh sách tin tức mới nhất
- Lấy dữ liệu
- Tách dữ liệu crawl được từ web
- Phân tích dữ liệu
- Lấy dữ liệu chi tiết của từng bài
- Tạo hàm để tái sử dụng trong python
Bước 1: Cài đặt module (hướng dẫn cho cmd Window)
Để lấy dữ liệu từ web bằng python, đầu tiên bạn cần cài đặt Requests: pip install requests (hoặc python –m pip install requests) Cài đặt Pilow: pip install Pillow (hoặc python –m pip install Pillow) *Lưu ý: Nếu bạn đang dùng PIP cũ thì hãy update lên pip mới trước khi cài Pillow với cú pháp như sau nhé: Update PIP: pip install -–upgrade pip (hoặc python –m pip install -–upgrade pip)Bước 2: Crawl dữ liệu từ danh sách tin tức mới nhất
Lấy dữ liệu
Hiểu một cách đơn giản thì Module Request dùng để gửi HTTP request, điều này cũng giống như thao tác bạn thường làm khi tìm kiếm thứ gì đó trên mạng: Vào trình duyệt, gõ vào thanh tìm kiếm “mcivietnam” và enter, bạn sẽ nhận được giao diện của trang web MCI hoặc một dạng dữ liệu khác trả về. Để lấy được dữ liệu trả về chúng ta phải sử dụng một module để hỗ trợ và Request sẽ giúp bạn thực hiện việc đó. requests.method(url, params, data, json, headers, cookies, files, auth, timeout, allow_redirects, proxies, verify, stream, cert) Đoạn code này có vẻ khá phức tạp đúng không? Thực ra thì chúng ta không cần nhiều tham số đến vậy, bạn có thể sửa lại theo cách này để đoạn mã nhìn “đẹp” hơn: import requests response = requests.get("https://tuoitre.vn/tin-moi-nhat.htm") print(response) Những, bạn sẽ nhận được kết quả trả về như thế này: <Response [200]> Đây không phải là dữ liệu mà chúng ta cần, vì vậy, phải thêm một vài thuộc tính nữa để lấy dữ liệu từ web như mong muốn của chúng ta: print(response.content) Đây là kết quả trả về: <!DOCTYPE html>\r\n <html id="mainHtml" lang="vi" xmlns="http://www.w3.org/1999/xhtml">\r\n <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#"><link rel="dns-prefetch" href="https://cdn.tuoitre.vn" /><link rel="dns-prefetch" href="https://cdn1.tuoitre.vn" /><link rel="dns-prefetch" href="https://statictuoitre.mediacdn.vn" /><title>Tin m\xe1\xbb\x9bi nh\xe1\xba\xa5t - Tu\xe1\xbb\x95i tr\xe1\xba\xbb Online</title><meta name="keywords" content="Tin m\xe1\xbb\x9bi nh\xe1\xba\xa5t - Tu\xe1\xbb\x95i tr\xe1\xba\xbb Online" /><meta name="news_keywords" content="Tin m\xe1\xbb\x9bi nh\xe1\xba\xa5t - Tu\xe1\xbb\x95i tr\xe1\xba\xbb Online" /><meta name="description" content="" /><meta id="metaRobots" name="robots" content="index,follow,all" /><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1" /><meta name="author" content="TUOI TRE ONLINE" /><meta name="copyright" content="Copyright \xc2\xa9 2020 by TUOITRE.VN" /><meta name="RATING" content="GENERAL" /> …(còn nữa>…Tách dữ liệu crawl được từ web
Sau khi đã lấy được dữ liệu, việc tiếp theo cần làm là phải tách các dữ liệu ra thành dạng cây để thuận tiện hơn cho quá trình truy xuất dữ liệu. Các phổ biến là dùng module BeautifulSoup4. Cú pháp cài đặt module: pip install beautifulsoup4 (hoặc python –m pip install beautifulsoup4 Sau đó, BeautifulSoup4 sẽ giúp bạn phân tích dữ liệu HTML, XML thành dạng cây với cú pháp như sau: import requests from bs4 import BeautifulSoup response = requests.get("https://tuoitre.vn/tin-moi-nhat.htm") soup = BeautifulSoup(response.content, "html.parser") print(soup)Phân tích dữ liệu
Sau khi đã hoàn thành, bước tiếp theo bạn cần làm là phân tích xem dữ liệu đang cần có thể lấy được ở đâu. Ví dụ bạn cần lấy chi tiết về một bài viết cụ thể, bạn cần biết liên kết để truy cập đến bài viết đó. Bạn có thể tìm kiếm thông tin đó bằng cách ấn F12 và tìm xem link bài báo ở đâu. Ví dụ chúng ta tìm thấy link bài báo ở trong thẻ <a></a>, nằm trong thẻ h3 và có class là “title-news”. Vậy chúng ra cần phải lọc tất cả thẻ h3 có class “title-news” và lấy thẻ a trong đó, đoạn mã cần thiết được xây dựng là: titles = soup.findAll('h3', class_='title-news') print(titles) Kết quả sẽ trả về cho chúng ta một mảng các thẻ h3 là tiêu đề của các bài báo. Tiếp theo chúng ta cần lấy link của các bài viết đó: links = [link.find('a').attrs["href"] for link in titles] print(links) Kết quả trả về: ['/moi-cac-truong-tham-gia-cam-nang-tuyen-sinh-dh-cd-hau-covid-19-tang-thi-sinh-20200605093106804.htm', '/truong-tre-vao-top-10-cong-bo-quoc-te-va-nghi-van-mua-bai-bao-khoa-hoc-2020060509193892.htm', '/nghi-si-9-nuoc-lap-lien-minh-dua-ra-lap-truong-cung-ran-hon-voi-trung-quoc-20200605084031973.htm', '/mo-tinh-xuat-huyet-nao-20200605092647937.htm',…]Lấy dữ liệu chi tiết của từng bài
Ở bước trước, chúng ta đã có được danh sách các thẻ h3 là tiêu đề của các bài báo, giờ chúng ta cần truy cập vào từng bài viết, lấy 1 ảnh đại diện và 1 đoạn trích trong bài viết đó, đoạn code được thực hiện như sau: for link in links: news = requests.get("https://tuoitre.vn" + link) soup = BeautifulSoup(news.content, "html.parser") title = soup.find("h1", class_="article-title").text abstract = soup.find("h2", class_="sapo").text body = soup.find("div", id="main-detail-body") content = body.findChildren("p", recursive=False)[0].text + body.findChildren("p", recursive=False)[1].text image = body.find("img").attrs["src"] print("Tiêu đề: " + title) print("Mô tả: " + abstract) print("Nội dung: " + content) print("Ảnh minh họa: " + image) print("_________________________________________________________________________") Bingo, vậy là bạn đã hoàn thành xong phần crawl dữ liệu từ web bằng python rồi. Chúng tôi sẽ giải thích thêm một chút về các đoạn code: Đầu tiên chúng ta sử dụng một vòng for-loop để duyệt qua tất cả các link và sau đó truy cập vào các link đó, lưu ý do href của thẻ a không có link gốc (dạng “/router-ne”) nên chúng ta cần chèn thêm BASE URL vào: requests.get("https://tuoitre.vn" + link) Ở bước lấy tiêu đề, đoạn tóm tắt và ảnh đại diện. Bạn bật f12 lên tìm hiểu. Còn phần content mình cần tìm 2 thẻ p con chỉ dưới <div id="main-detail-body"><div> một cấp nên ta sẽ có tham số recursive như sau: body.findChildren("p", recursive=False)Tạo hàm để tái sử dụng trong python
Sau khi hoàn thành các bước, bạn có thể tạo một hàm trong python với tên gọi Crawnewsdata() để thuận tiện sử dụng cho những lần sau, hàm này sẽ nhận vào url gốc, url đến nơi lấy bài và trả về một list các bài viết gồm tiêu đề, đoạn tóm tắt, nội dung và một hình ảnh đại diện. def crawNewsData(baseUrl, url): response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") titles = soup.findAll('h3', class_='title-news') links = [link.find('a').attrs["href"] for link in titles] data = [] for link in links: news = requests.get(baseUrl + link) soup = BeautifulSoup(news.content, "html.parser") title = soup.find("h1", class_="article-title").text abstract = soup.find("h2", class_="sapo").text body = soup.find("div", id="main-detail-body") content = "" try: content = body.findChildren("p", recursive=False)[0].text + body.findChildren("p", recursive=False)[1].text except: content = "" image = body.find("img").attrs["src"] data.append({ "title": title, "abstract": abstract, "content": content, "image": image, }) return dataNote: Để hiểu hơn về Python bạn có thể tham khảo khóa học và nhận tư vấn Career Path từ đội ngũ chuyên gia tại đây:
link: https://bit.ly/3QzTaSU
Mã QR: https://i.imgur.com/H9zO26U.png
Chương trình đào tạo: Phân tích dữ liệu, Khoa học dữ liệu, Kĩ sư dữ liệu, Lập trình ứng dụng. Chất lượng nhất - Uy tín nhất - Nhiều học viên tin tưởng nhất Hơn 8000 học viên ưu tú đã tốt nghiệp Đăng ký ngay
Các khóa học
Điện toán đám mây- Mastering AWS : From Basics to Applications Specialized
- Data Engineer Track Specialized
- AI & DASHBOARD – CHỈ 990K Hot
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Business Analyst Bestseller
- PL300-Microsoft Power BI Data Analyst Associate Bestseller
- Computer vision- Thị Giác Máy tính Hot
- AI Mastery 2026: Hệ thống hóa – Tự động hóa – Tăng tốc công việc Hot
- N8N MASTERY: XÂY DỰNG VÀ TỐI ƯU QUY TRÌNH TỰ ĐỘNG HÓA Hot
- Khóa Học Huấn Luyện AI Agent - Khai Phá Tương Lai Công Nghệ AI Hot
- AI Coaching 1:1 Hot
Đăng ký tư vấn khóa học
Số điện thoại*:*Vui lòng nhập số điện thoại của bạn
Họ và tên*:*Vui lòng nhập họ tên của bạn
Địa điểm học*: Hà Nội Hồ Chí Minh Online *Vui lòng chọn địa điểm học Khóa học: Phân tích dữ liệu (Data analytics) Khoa học dữ liệu (Data science) Kỹ sư dữ liệu (Data engineering) Lập trình ứng dụng (Software, Apps) Khác Giới tính*: Nam Nữ*Vui lòng chọn giới tính
Bạn biết đến MCI qua*: Facebook Giới thiệu bạn bè Website MCI Kênh khác*Vui lòng chọn 1 trường
Câu hỏi cho MCI (nếu có): Đăng ký tư vấnfor link in links: news = requests.get("https://tuoitre.vn" + link) soup = BeautifulSoup(news.content, "html.parser") title = soup.find("h1", class_="article-title").text abstract = soup.find("h2", class_="sapo").text body = soup.find("div", id="main-detail-body") content = body.findChildren("p", recursive=False)[0].text + body.findChildren("p", recursive=False)[1].text image = body.find("img").attrs["src"] print("Tiêu đề: " + title) print("Mô tả: " + abstract) print("Nội dung: " + content) print("Ảnh minh họa: " + image) print("_________________________________________________________________________") Mình làm theo thì nó báo lỗi 'NoneType' object has no attribute 'text' ở dòng abstract = soup.find("h2", class_="sapo").text là sao nhỉ ? Admin check lại giúp mình nhé
Đăng bình luậnCác bài viết liên quan
50+ Bài tập SQL thực tế – Luyện truy vấn giỏi như chuyên gia
Tổng hợp 50+ bài tập SQL cơ bản đến nâng cao kèm lời giải chi tiết. Cùng MCI khám phá bí quyết luyện SQL nhanh, hiệu quả và áp dụng ngay vào công việc.
Hướng Dẫn Cách Tạo GUI Trong Python Từ Cơ Bản Đến Nâng Cao
Khám phá cách tạo GUI trong Python với hướng dẫn chi tiết từ cơ bản đến nâng cao: tạo cửa sổ, thêm widget, xử lý sự kiện và tối ưu layout dễ hiểu cho người mới.
Dict Trong Python Là Gì? Khám Phá Cấu Trúc Dữ Liệu Mạnh Nhất
Tìm hiểu Dict trong Python với cấu trúc dữ liệu mạnh mẽ giúp bạn tối ưu tốc độ xử lý, lưu trữ, truy xuất và quản lý dữ liệu hiệu quả chỉ với vài dòng code.
Các bài viết liên quan
50+ Bài tập SQL thực tế – Luyện truy vấn giỏi như chuyên gia
Tổng hợp 50+ bài tập SQL cơ bản đến nâng cao kèm lời giải chi tiết. Cùng MCI khám phá bí quyết luyện SQL nhanh, hiệu quả và áp dụng ngay vào công việc.
Hướng Dẫn Cách Tạo GUI Trong Python Từ Cơ Bản Đến Nâng Cao
Khám phá cách tạo GUI trong Python với hướng dẫn chi tiết từ cơ bản đến nâng cao: tạo cửa sổ, thêm widget, xử lý sự kiện và tối ưu layout dễ hiểu cho người mới.
Dict Trong Python Là Gì? Khám Phá Cấu Trúc Dữ Liệu Mạnh Nhất
Tìm hiểu Dict trong Python với cấu trúc dữ liệu mạnh mẽ giúp bạn tối ưu tốc độ xử lý, lưu trữ, truy xuất và quản lý dữ liệu hiệu quả chỉ với vài dòng code.
Previous NextĐăng ký tư vấn khóa học
Số điện thoại*:*Vui lòng nhập số điện thoại của bạn
Họ tên*:*Vui lòng nhập họ tên của bạn
Địa điểm học*: Hà Nội Hồ Chí Minh Online *Vui lòng chọn địa điểm học Khóa học: Phân tích dữ liệu (Data analytics) Khoa học dữ liệu (Data science) Kỹ sư dữ liệu (Data engineering) Lập trình ứng dụng (Software, Apps) Khác Giới tính*: Nam Nữ*Vui lòng chọn giới tính
Bạn biết đến MCI qua*: Facebook Giới thiệu bạn bè Website MCI Kênh khác*Vui lòng chọn 1 trường
Câu hỏi cho MCI (nếu có): Gửi Close UpdateXoá bình luận ?
Bạn có chắc chắn xoá bình luận này không? Huỷ Xoá bỏHỌC VIỆN CÔNG NGHỆ MCI
MCI Việt Nam
95.7k người theo dõi Theo dõi trangChương Trình Đào Tạo
Phân tích dữ liệu
Data Analyst Business Intelligence Python SQL Power BI Excel VBA
Khoa học dữ liệu
Data Science Python SQL Maths & Statistics Power BI
Kĩ sư dữ liệu
Data Engineering Javascript SQL NoSQL Hadoop Spark
Lập trình ứng dụng
Web App Development Mobile App Development Java NodeJS Javascript ReactJS Angular ReactNative Flutter Robotic Process Automation (RPA) IT Business AnalystHotline
Khiếu nại CEO: 0982 521 378
Khiếu nại dịch vụ CSKH: 024 7106 8368
Tư vấn khóa học: 0352.433.233
Tư vấn đào tạo doanh nghiệp: 0352.433.233
CSKH: [email protected]
Chính sách bảo mật
CÔNG TY CỔ PHẦN GIẢI PHÁP CÔNG NGHỆ MCI. Mã số thuế: 0110397816. Địa chỉ: Tầng 5, Tòa nhà Star City, 23 Lê Văn Lương, Phường Thanh Xuân, Hà Nội.Từ khóa » đăng Nhập Web Bằng Python
-
Tự động đăng Nhập Website Sử Dụng Selenium Trong Python
-
Hướng Dẫn Xử Lý Login Và Logout User Trong Python Django
-
Cách Xây Dựng Bot đăng Nhập Tự động đơn Giản Với Python Và ...
-
Viết Chương Trình đăng Nhập đơn Giản Trong Python - TEK4
-
Lập Trình Web Với Python - Hướng Dẫn Cho Người Chưa Biết Gì - Teky
-
Hướng Dẫn Cách Lập Trình Web Với Python Hiệu Quả Mới Nhất 2020
-
Làm Cách Nào để đăng Nhập Vào Một Trang Web Bằng Python? Cập ...
-
Làm Cách Nào để Sử Dụng Python để đăng Nhập Vào Trang Web Và ...
-
Auto Login Account Web
-
Kiểm Thử Tự động Trên Form Đăng Nhập Sử Dụng Python - Viblo
-
Tạo Form đăng Nhập Bằng Python - YouTube
-
Python Flask (Bài Tập-P07) - Đăng Nhập Và đăng Xuất - YouTube
-
Đăng Nhập Vào Trang Web Bằng Yêu Cầu Python - Wake-up
-
Làm Web Bằng Python - Nơi Học Tập Của Bạn