以下是一个简化的Python爬虫示例,用于从一个假设的旅游网站上抓取旅游景点信息。
import requests
from bs4 import BeautifulSoup
import csv
 
def get_sight_data(url):
    response = requests.get(url)
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        sight_data = {
            'name': soup.find('h1', class_='sight-name').text.strip(),
            'description': soup.find('div', class_='sight-description').text.strip(),
            'address': soup.find('div', class_='sight-address').text.strip(),
            'phone': soup.find('div', class_='sight-phone').text.strip(),
            'rating': soup.find('div', class_='sight-rating').text.strip(),
        }
        return sight_data
    else:
        return None
 
def save_to_csv(data, filename='sights_data.csv'):
    with open(filename, 'w', newline='', encoding='utf-8') as file:
        writer = csv.DictWriter(file, fieldnames=data[0].keys())
        writer.writeheader()
        for row in data:
            writer.writerow(row)
 
def main():
    sight_url = 'http://fake-travel-site.com/sight/123'
    data = get_sight_data(sight_url)
    if data:
        print("爬取成功:", data)
        save_to_csv([data])
    else:
        print("爬取失败")
 
if __name__ == '__main__':
    main()
这段代码首先定义了一个get_sight_data函数,该函数接收一个URL,向网站发送请求,解析响应内容,并提取旅游景点的数据。然后定义了一个save_to_csv函数,用于将爬取的数据保存到CSV文件中。最后,在main函数中调用了get_sight_data来爬取数据,并在控制台中打印结果,同时调用save_to_csv函数将数据保存到CSV文件。
请注意,由于实际的网站可能有不同的结构和反爬虫策略,这个示例可能需要进行相应的调整才能在实际使用中有效运行。