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.
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à 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.
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.
Đầ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' và '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ả và lưu trữ chúng trong tệp csv.
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:
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:
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.