用python爬取豆瓣电影排名前250名解析数据,分析电影名称,明星,电影信息,电影简述,电影评论人数,上映国家,上映时间,并将数据保存为excel
时间: 2024-02-14 13:18:57 浏览: 108
python爬虫豆瓣电影TOP250,以及数据化分析
好的,我们可以使用Python中的pandas库将数据保存为Excel。在之前的基础上,我们可以对程序进行一些修改和完善。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://movie.douban.com/top250'
def get_html(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
except requests.RequestException:
return None
def parse_html(html):
soup = BeautifulSoup(html, 'lxml')
movies = soup.select('.info')
for movie in movies:
title = movie.select_one('.title').text
star = movie.select_one('.rating_num').text
info = movie.select_one('.bd p').text
brief = movie.select_one('.quote .inq').text
comments = movie.select('.star span')[-1].text
otherinfo = movie.select_one('.bd p').text.strip().split('\n')[1].split('/')
country = otherinfo[0].strip()
date = otherinfo[-2].strip()
yield {
'title': title,
'star': star,
'info': info,
'brief': brief,
'comments': comments,
'country': country,
'date': date
}
def save_to_excel(data):
df = pd.DataFrame(data)
df.to_excel('movies.xlsx', index=False)
def main():
data = []
for offset in range(0, 250, 25):
url = 'https://movie.douban.com/top250?start={}&filter='.format(offset)
html = get_html(url)
for item in parse_html(html):
data.append(item)
save_to_excel(data)
if __name__ == '__main__':
main()
```
这个程序会爬取豆瓣电影排行榜前250名的电影信息,包括电影名称、明星、电影信息、电影简述、电影评论人数、上映国家和上映时间,并将数据保存为名为"movies.xlsx"的Excel文件。你可以根据需要对数据进行进一步处理和分析。
阅读全文