基于Python的旅游导览系统的设计与实现-爬虫
以下是一个简化的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文件。
请注意,由于实际的网站可能有不同的结构和反爬虫策略,这个示例可能需要进行相应的调整才能在实际使用中有效运行。
评论已关闭