帮我用python写一个爬虫程序,每个功能需要全面展示(封装成函数),可以粗略细节部分,
时间: 2024-02-01 17:12:21 浏览: 19
好的,下面是一个简单的爬虫程序,包含了基本的爬取网页、解析网页和保存数据等功能。
```python
import requests
from bs4 import BeautifulSoup
import csv
def get_html(url):
# 发送请求,获取网页内容
response = requests.get(url)
# 设置编码格式
response.encoding = 'utf-8'
# 返回网页内容
return response.text
def parse_html(html):
# 解析网页内容,获取需要的数据
soup = BeautifulSoup(html, 'html.parser')
# 这里以豆瓣电影Top250为例,获取电影名称、评分和评价人数
movie_list = soup.find('ol', class_='grid_view').find_all('li')
data = []
for movie in movie_list:
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
comment_num = movie.find('div', class_='star').find_all('span')[-1].text[:-3]
data.append((title, rating, comment_num))
# 返回数据
return data
def save_data(data):
# 保存数据到CSV文件
with open('top250.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['电影名称', '评分', '评价人数'])
writer.writerows(data)
if __name__ == '__main__':
# 豆瓣电影Top250的URL
url = 'https://movie.douban.com/top250'
# 获取网页内容
html = get_html(url)
# 解析网页内容,获取需要的数据
data = parse_html(html)
# 保存数据到CSV文件
save_data(data)
```
这个爬虫程序主要包含了以下几个功能:
1. 发送请求,获取网页内容:`get_html(url)`
2. 解析网页内容,获取需要的数据:`parse_html(html)`
3. 保存数据到CSV文件:`save_data(data)`
这三个功能都封装成了函数,并且在程序的主函数中依次调用,实现了一个简单的爬虫程序。需要注意的是,这个程序可能会被网站封IP,所以在实际应用中需要进行一些优化和设置。