Craigslist vẫn là một nền tảng quan trọng để truy cập các quảng cáo được phân loại cụ thể trong bối cảnh kỹ thuật số hiện tại. Sử dụng Python trong việc giới thiệu chi tiết về chi tiết từ quảng cáo chứng tỏ rất hữu ích. Các hoạt động cạo web năng suất được kích hoạt bởi khả năng thích ứng và các thư viện mạnh trong Python như yêu cầu hoặc BeautifulSoup. Hướng dẫn này đi sâu vào vương quốc của craigslist cào bằng python, nêu bật việc sử dụng đẹp và yêu cầu trích xuất nội dung, cùng với vòng quay proxy để điều hướng phòng thủ chống BOT một cách hiệu quả.
Tiếp theo, chúng tôi sẽ trải qua quá trình cạo từng bước, bắt đầu bằng việc gửi các yêu cầu HTTP và trích xuất các yếu tố trang cụ thể và hoàn thiện với việc lưu dữ liệu theo định dạng cần thiết.
Bạn sẽ cần cài đặt các thư viện cần thiết:
pip install beautifulsoup4
pip install requests
Sử dụng thư viện yêu cầu để gửi HTTP Nhận yêu cầu đến các trang liệt kê Craigslist.
import requests
# Danh sách các url craigslist để cạo
urls = [
"link",
"link"
]
for url in urls:
# Gửi yêu cầu nhận đến URL
response = requests.get(url)
# Kiểm tra xem yêu cầu có thành công không (mã trạng thái 200)
if response.status_code == 200:
# Trích xuất nội dung HTML từ phản hồi
html_content = response.text
else:
# Nếu yêu cầu không thành công, hãy in thông báo lỗi bằng mã trạng thái
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Sử dụng BeautifulSoup để phân tích cú pháp HTML và điều hướng qua nội dung được truy xuất.
from bs4 import BeautifulSoup
# Lặp lại thông qua từng url trong danh sách
for url in urls:
# Gửi yêu cầu nhận đến URL
response = requests.get(url)
# Kiểm tra xem yêu cầu có thành công không (mã trạng thái 200)
if response.status_code == 200:
# Trích xuất nội dung HTML từ phản hồi
html_content = response.text
# Phân tích nội dung HTML bằng cách sử dụng đẹp
soup = BeautifulSoup(html_content, 'html.parser')
else:
# Nếu yêu cầu không thành công, hãy in thông báo lỗi bằng mã trạng thái
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Trích xuất dữ liệu như tiêu đề mục và giá từ danh sách Craigslist bằng các phương thức đẹp.
from bs4 import BeautifulSoup
# Lặp lại thông qua từng url trong danh sách
for url in urls:
# Gửi yêu cầu nhận đến URL
response = requests.get(url)
# Kiểm tra xem yêu cầu có thành công không (mã trạng thái 200)
if response.status_code == 200:
# Trích xuất nội dung HTML từ phản hồi
html_content = response.text
# Phân tích nội dung HTML bằng cách sử dụng đẹp
soup = BeautifulSoup(html_content, 'html.parser')
# Trích xuất các điểm dữ liệu cụ thể
# Tìm tiêu đề của danh sách
title = soup.find('span', id='titletextonly').text.strip()
# Tìm giá của danh sách
price = soup.find('span', class_='price').text.strip()
# Tìm mô tả về danh sách (có thể chứa nhiều đoạn văn)
description = soup.find('section', id='postingbody').find_all(text=True, recursive=False)
# In dữ liệu được trích xuất (cho mục đích trình diễn)
print(f"Title: {title}")
print(f"Price: {price}")
print(f"Description: {description}")
else:
# Nếu yêu cầu không thành công, hãy in thông báo lỗi bằng mã trạng thái
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
Tiêu đề:
Giá:
Sự miêu tả:
Khi dữ liệu được trích xuất, hãy lưu nó vào tệp CSV để phân tích hoặc tích hợp thêm với các công cụ khác.
import csv
# Xác định đường dẫn tệp CSV và tên trường
csv_file = 'craigslist_data.csv'
fieldnames = ['Title', 'Price', 'Description']
# Viết dữ liệu vào tệp CSV
try:
# Mở tệp CSV ở chế độ ghi bằng mã hóa UTF-8
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
# Tạo một đối tượng CSV Dictwriter với các tên trường được chỉ định
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Viết hàng tiêu đề trong tệp CSV
writer.writeheader()
# Lặp lại thông qua từng mục trong danh sách Scraped_data
for item in scraped_data:
# Viết từng mục dưới dạng một hàng trong tệp CSV
writer.writerow(item)
# In tin nhắn thành công sau khi ghi dữ liệu vào tệp CSV
print(f"Data saved to {csv_file}")
except IOError:
# In một thông báo lỗi nếu ioRror xảy ra trong khi ghi vào tệp CSV
print(f"Error occurred while writing data to {csv_file}")
Craigslist có thể thực hiện các biện pháp để ngăn chặn việc cạo, chẳng hạn như chặn IP hoặc các thách thức CAPTCHA. Để giảm thiểu các vấn đề này, hãy xem xét sử dụng proxy và các tác nhân người dùng xoay.
Sử dụng proxy:
Ví dụ này cho thấy việc sử dụng proxy với ủy quyền địa chỉ IP.
proxies = {
'http': 'http://your_proxy_ip:your_proxy_port',
'https': 'https://your_proxy_ip:your_proxy_port'
}
response = requests.get(url, proxies=proxies)
Xoay người dùng-tác nhân:
import random
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
# Thêm nhiều đại lý người dùng khi cần thiết
]
headers = {
'User-Agent': random.choice(user_agents)
}
response = requests.get(url, headers=headers)
Tập lệnh Python hoàn chỉnh này cho thấy cách tích hợp các thành phần khác nhau để xây dựng một craigslist craper hiệu quả, trích xuất, phân tích cú pháp và lấy dữ liệu từ nhiều URL.
import requests
import urllib3
from bs4 import BeautifulSoup
import csv
import random
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# Danh sách các url craigslist để cạo
urls = [
"link",
"link"
]
# Đại lý người dùng và proxy
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
]
proxies = [
{'http': 'http://your_proxy_ip1:your_proxy_port1', 'https': 'https://your_proxy_ip1:your_proxy_port1'},
{'http': 'http://your_proxy_ip2:your_proxy_port2', 'https': 'https://your_proxy_ip2:your_proxy_port2'},
]
# Liệt kê để lưu trữ dữ liệu cào
scraped_data = []
# Vòng lặp qua từng URL trong danh sách
for url in urls:
# Xoay đại lý người dùng cho mỗi yêu cầu để tránh phát hiện
headers = {
'User-Agent': random.choice(user_agents)
}
# Sử dụng một proxy khác nhau cho mỗi yêu cầu để tránh chặn IP
proxy = random.choice(proxies)
try:
# Gửi yêu cầu đến URL Craigslist với các tiêu đề và proxy
response = requests.get(url, headers=headers, proxies=proxy, timeout=30, verify=False)
# Kiểm tra xem yêu cầu có thành công không (mã trạng thái 200)
if response.status_code == 200:
# Nội dung phân tích HTML của phản hồi
html_content = response.text
soup = BeautifulSoup(html_content, 'html.parser')
# Trích xuất dữ liệu từ HTML phân tích cú pháp
title = soup.find('span', id='titletextonly').text.strip()
price = soup.find('span', class_='price').text.strip()
description = soup.find('section', id='postingbody').get_text(strip=True, separator='\n') # Trích xuất mô tả
# Nối dữ liệu được quét dưới dạng từ điển vào danh sách
scraped_data.append({'Title': title, 'Price': price, 'Description': description})
print(f"Data scraped for {url}")
else:
# In thông báo lỗi nếu yêu cầu không thành công
print(f"Failed to retrieve {url}. Status code: {response.status_code}")
except Exception as e:
# In tin nhắn ngoại lệ nếu xảy ra lỗi trong quá trình cạo
print(f"Exception occurred while scraping {url}: {str(e)}")
# Thiết lập tệp CSV để lưu trữ dữ liệu đã quét
csv_file = 'craigslist_data.csv'
fieldnames = ['Title', 'Price', 'Description']
# Viết dữ liệu được quét vào tệp CSV
try:
with open(csv_file, mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Viết hàng tiêu đề trong tệp CSV
writer.writeheader()
# Lặp lại thông qua danh sách Scraped_data và ghi từng mục vào tệp CSV
for item in scraped_data:
writer.writerow(item)
# In tin nhắn thành công nếu dữ liệu được lưu thành công
print(f"Data saved to {csv_file}")
except IOError:
# In thông báo lỗi nếu có ioerror trong khi ghi vào tệp csv
print(f"Error occurred while writing data to {csv_file}")
Craigslist rất quan trọng vì nó cung cấp một nơi mà chúng ta có thể tìm thấy quảng cáo được phân loại cung cấp cho chúng ta thông tin hữu ích để kiểm tra thị trường, tìm kiếm khách hàng tiềm năng giữa những người khác. Craigslist Scraping được thực hiện dễ dàng bằng cách sử dụng các thư viện như BeautifulSoup và Request. Các chiến thuật chính được thảo luận trong hướng dẫn này là xử lý nội dung động và các proxy xoay. Bằng cách tận dụng Python một cách có trách nhiệm, bạn có thể trích xuất những hiểu biết có thể hành động từ các danh sách Craigslist, hỗ trợ việc ra quyết định sáng suốt trên các lĩnh vực khác nhau.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Bình luận: 0