Thu thập dữ liệu web bằng ChatGPT

Hướng dẫn , Cách thực hiện , Cạo ,20-08-20245 phút đọc

Web scraping là một công cụ mạnh mẽ dành cho các nhà phát triển, nhà khoa học dữ liệu, nhà tiếp thị kỹ thuật số và nhiều người khác muốn trích xuất dữ liệu có giá trị từ các trang web. Nếu bạn đang muốn nâng cao hành trình web scraping của mình, việc khai thác các khả năng của ChatGPT có thể giúp bạn rất nhiều. Blog này sẽ hướng dẫn bạn cách sử dụng ChatGPT để tạo các tập lệnh web scraping mạnh mẽ, hiệu quả và đáng tin cậy.

Giới thiệu về ChatGPT

ChatGPT, được hỗ trợ bởi OpenAI, là một mô hình ngôn ngữ tiên tiến được thiết kế để hiểu và tạo ra văn bản giống con người. Nó tận dụng xử lý ngôn ngữ tự nhiên (NLP) để hỗ trợ nhiều tác vụ khác nhau, từ tạo nội dung đến hỗ trợ mã hóa. Với khả năng hiểu ngữ cảnh và đưa ra các gợi ý thông minh, ChatGPT đã trở thành một tài sản có giá trị đối với các nhà phát triển và nhà khoa học dữ liệu.

ChatGpt là gì?

ChatGPT là viết tắt của "Chat Generative Pre-trained Transformer". Đây là một loại trí tuệ nhân tạo có thể tạo ra văn bản dựa trên dữ liệu đầu vào mà nó nhận được. Mặc dù được biết đến với khả năng đàm thoại, nhưng ứng dụng của nó còn vượt xa đối thoại đơn giản.

Sử dụng ChatGpt trong việc thu thập dữ liệu web

  • Hỗ trợ mã: Trợ giúp viết và gỡ lỗi các tập lệnh thu thập dữ liệu web.
  • Đề xuất thư viện: Đề xuất các công cụ như Beautiful Soup, Scrapy, Selenium...
  • Thực hành tốt nhất: Hướng dẫn về các kỹ thuật thu thập dữ liệu hiệu quả và có đạo đức.

Hạn chế của ChatGPT trong Web Scraping

  • Bỏ qua các biện pháp bảo mật: ChatGPT không thể giúp vượt qua các biện pháp bảo mật như chặn IP hoặc các công nghệ chống thu thập dữ liệu khác vượt quá giới hạn đạo đức.
  • Thu thập dữ liệu theo thời gian thực: ChatGPT không thể tương tác với các trang web theo thời gian thực để thu thập dữ liệu.
  • Phát triển công cụ tùy chỉnh: ChatGPT không thể phát triển các công cụ phần mềm hoặc khuôn khổ tùy chỉnh để thu thập dữ liệu web.

Ví dụ về cách sử dụng ChatGpt để thu thập dữ liệu web

Mặc dù trò chuyện không thể trực tiếp thu thập dữ liệu từ trang web, nhưng nó chắc chắn có thể truyền cảm hứng cho chúng ta với những ý tưởng về cách tiếp cận quy trình thu thập dữ liệu web. Ngoài ra, nó có thể cung cấp các tập lệnh mà chúng ta có thể sử dụng trong các dự án thu thập dữ liệu web của mình.

Hãy cùng khám phá một ví dụ đơn giản. Hãy tưởng tượng chúng ta muốn thu thập một trang web bài đăng trên blog và trích xuất từng bài đăng trên blog, sau đó lưu trữ trong tệp csv. Thông tin chúng ta muốn lưu là tiêu đề blog, mô tả và url blog.

Bước 1 - Soạn lời nhắc ChatGpt:

Đầu tiên, chúng ta cần tạo một lời nhắc cho ChatGPT nêu rõ những gì chúng ta cần. Trong ví dụ này, chúng ta sẽ sử dụng trang web (https://www.scrapethissite.com/pages) để trích xuất tiêu đề, mô tả và URL của từng blog. Để hướng dẫn ChatGpt đúng cách, chúng ta cần cung cấp các bộ chọn của blog đầu tiên. Để thực hiện điều đó, hãy nhấp chuột phải vào phần tử rồi nhấp vào kiểm tra

Sau đó, chúng ta muốn lấy bộ chọn Xpath bằng cách nhấp chuột phải vào phần tử một lần nữa, sau đó Sao chép rồi Sao chép XPath

Bạn cũng nên áp dụng tương tự cho phần mô tả và URL của blog.

Dưới đây là phiên bản cuối cùng của lời nhắc:

Viết một tập lệnh Python sử dụng thư viện 'Requests'  'BeautifulSoup' để thu thập các bài đăng trên blog từ trang web này: "https://www.scrapethissite.com/pages/" Thông tin cần trích xuất là: - Tiêu đề blog - XPath: "//*[@id=" pages "]/section/div/div/div/div[1]/h3/a" - Mô tả blog - XPath: "//*[@id=" pages "]/section/div/div/div/div[1]/p" - Url blog - XPath: "//*[@id=" pages "]/section/div/div/div/div[1]/h3/a" Cuối cùng, tập lệnh sẽ in kết quả  lưu trữ chúng trong tệp csv.

Bước 2 - Thiết lập tập lệnh Python:

Sau đây là đoạn mã mà ChatGpt đã xuất ra:

import requests
from bs4 import BeautifulSoup
import csv
# URL of the website to scrape
url = 'https://www.scrapethissite.com/pages/'
# Send a GET request to the URL
response = requests.get(url)
# Parse the page content using BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# List to store the scraped data
blogs = []
# Locate the sections containing blog information
# Using the provided XPath details converted to BeautifulSoup format
blog_sections = soup.select('#pages section div div div div')
for section in blog_sections:
   # Extract the blog title
   title_tag = section.select_one('h3 a')
   title = title_tag.text.strip() if title_tag else 'No title'
   # Extract the blog description
   description_tag = section.select_one('p')
   description = description_tag.text.strip() if description_tag else 'No description'
   # Extract the blog URL
   url_tag = section.select_one('h3 a')
   blog_url = url_tag['href'] if url_tag else 'No URL'
   # Append the data to the blogs list
   blogs.append({'Title': title, 'Description': description, 'URL': blog_url})
# Print the extracted information
for blog in blogs:
   print(f"Title: {blog['Title']}\nDescription: {blog['Description']}\nURL: {blog['URL']}\n")
# Save the data to a CSV file
csv_file = 'blogs.csv'
with open(csv_file, mode='w', newline='') as file:
   writer = csv.DictWriter(file, fieldnames=['Title', 'Description', 'URL'])
   writer.writeheader()
   writer.writerows(blogs)
if __name__ == '__main__':
   print(f"Data saved to {csv_file}")

Trước khi chạy tập lệnh này, hãy đảm bảo bạn đã cài đặt thư viện 'requests' và 'bs4'.

pip cài đặt yêu cầu bs4

Sau đây là bản tóm tắt ngắn gọn về chức năng của tập lệnh này:

  • Thư viện nhập: Tôi nhập các yêu cầu, BeautifulSoup và csv để xử lý các yêu cầu HTTP, phân tích cú pháp HTML và quản lý các hoạt động của tệp CSV.
  • Lấy nội dung trang web: Sử dụng yêu cầu để gửi yêu cầu GET đến URL đã chỉ định và lấy nội dung HTML của trang.
  • Phân tích nội dung HTML: Phân tích nội dung HTML đã truy xuất bằng BeautifulSoup để tạo điều kiện trích xuất dữ liệu.
  • Trích xuất thông tin blog:
    • Tiêu đề blog: Trích xuất tiêu đề của mỗi bài đăng trên blog.
    • Mô tả blog: Trích xuất mô tả của từng bài đăng trên blog.
    • URL blog: Trích xuất URL của mỗi bài đăng trên blog.
  • Lưu trữ dữ liệu: Lưu trữ dữ liệu đã trích xuất trong danh sách từ điển.
  • In dữ liệu trích xuất: In tiêu đề, mô tả và URL của mỗi bài đăng trên blog.
  • Lưu dữ liệu vào CSV: Lưu dữ liệu đã trích xuất vào tệp CSV có tên là blogs.csv.

Bước 3 - Kiểm tra tập lệnh:

Sau khi bạn đã cài đặt các thư viện cần thiết, hãy tạo một tệp Python với tên bạn muốn. Sau đó, dán tập lệnh vào tệp và lưu lại.

Sau khi bạn thực thi tập lệnh, nó sẽ in dữ liệu cho từng blog và tạo một tệp CSV có tên "blogs.csv". Tệp này trông như thế này:

Phần kết luận

ChatGPT là một công cụ hữu ích cho các nhà phát triển, nhà khoa học dữ liệu và những người đam mê thu thập dữ liệu web. Bằng cách tận dụng các khả năng của công cụ này, bạn có thể cải thiện các tập lệnh thu thập dữ liệu web, cải thiện độ chính xác và giảm thời gian phát triển. Cho dù bạn đang trích xuất dữ liệu để phân tích thị trường, theo dõi phương tiện truyền thông xã hội hay nghiên cứu học thuật, ChatGPT có thể giúp bạn đạt được mục tiêu của mình hiệu quả hơn.