Hướng Dẫn Lấy Dữ Liệu Từ Web Bằng Python Dễ Hiểu - MCI

  • 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
  • Chương trình học theo lộ trình
    • Combo Power BI Level 1 & Level 2
    • Combo Python Level 1 & Level 2
    • Combo SQL Level 1 & Level 2
    • Business Analyst
    • Xem thêm
  • Chương trình học chuyển ngành và đầy đủ
    • 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
  • 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
  • DOANH NGHIỆP
  • Đào tạo Doanh nghiệp
  • Doanh nghiệp đối tác
  • Thiết kế Dashboard
  • LỊCH ĐÀO TẠO
  • Lịch đào tạo
  • Giảng viên
  • HỌC 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
  • Bài viết
  • Sự kiện
  • VỀ CHÚNG TÔI
  • Học viện Công nghệ MCI
  • Tuyển dụng MCI
  • Liên hệ
  • 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ập

    Forgot password? Click Here

    Đăng nhập với

    Facebook Google

    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

    Facebook Google Close
    Đă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ểu

    Hướ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 xem

    Nộ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
    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:

    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:&#32;http://ogp.me/ns#&#32;fb:&#32;http://ogp.me/ns/fb#&#32;website:&#32;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,&#32;initial-scale=1.0,&#32;maximum-scale=1.0,&#32;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 data

    Note: Để 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
    • 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ấn Lê Hải Anh Jan. 24, 2023, 12:27 a.m.

    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("_________________________________________________________________________") 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ận

    Các bài viết liên quan

    Image
    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.

    Image
    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.

    Image
    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

    Image
    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.

    Image
    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.

    Image
    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 Update
    Xoá 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 trang

    Chươ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 Analyst

    Hotline

    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