import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/top250' 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'} movies = [] for page in range(0, 250, 25): params = {'start': page, 'filter': ''} response = requests.get(url, headers=headers, params=params) soup = BeautifulSoup(response.text, 'html.parser') movie_list = soup.find('ol', class_='grid_view').find_all('li') for movie in movie_list: title = movie.find('span', class_='title').text rating = movie.find('span', class_='rating_num').text info = movie.find('div', class_='bd').p.text.strip().split('\n') director_actor = info[0] time_type = info[1].lstrip() movies.append((title, rating, director_actor, time_type)) for movie in movies: print(movie[0], movie[1], movie[2], movie[3])存储到execl中
时间: 2023-12-03 10:04:42 浏览: 62
要将数据存储到Excel中,你可以使用Python中的pandas库来实现。首先,你需要将数据转换为pandas的DataFrame格式,然后使用to_excel()函数将其保存为Excel文件。以下为示例代码:
```python
import pandas as pd
# 将数据转换为DataFrame格式
df = pd.DataFrame(movies, columns=['电影名称', '评分', '导演/演员', '时长/类型'])
# 保存为Excel文件
df.to_excel('top250_movies.xlsx', index=False)
```
这段代码将DataFrame命名为df,将movies中的数据列分别命名为电影名称、评分、导演/演员和时长/类型。然后,使用to_excel()函数将数据保存为top250_movies.xlsx文件,其中index=False表示不包含行索引。
相关问题
import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/chart' 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'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') for movie in soup.select('.pl2'): name = movie.a.text.strip() url = movie.a['href'] print(f'{name}:{url}')
这段代码的功能是爬取豆瓣电影排行榜的电影名称和链接,并将其打印出来。具体实现步骤是:
1. 导入requests和BeautifulSoup库。
2. 设置请求头headers,模拟浏览器发送请求。
3. 发送GET请求获取豆瓣电影排行榜页面的HTML源码,并使用BeautifulSoup库进行解析。
4. 使用CSS选择器(.pl2)获取所有电影的HTML元素,遍历元素列表。
5. 对于每个元素,使用CSS选择器获取电影名称和链接,并将其打印出来。
需要注意的是,此代码仅供学习和参考,不应用于商业用途或非法用途。爬取网站数据时应注意遵守相关法律法规和网站的使用规定。
爬取https://movie.douban.com/subject/1305690/所有短评的代码
以下是使用Python和BeautifulSoup库爬取豆瓣电影《肖申克的救赎》(https://movie.douban.com/subject/1305690/)所有短评的代码:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/subject/1305690/comments?start=0&limit=20&sort=new_score&status=P'
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'}
comments = []
while True:
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
comment_div_list = soup.find_all('div', class_='comment')
for comment_div in comment_div_list:
comment = comment_div.find('span', class_='short').text.strip()
comments.append(comment)
next_page = soup.find('a', class_='next')
if next_page:
url = 'https://movie.douban.com' + next_page['href']
else:
break
print(comments)
```
注:以上代码可能会触发豆瓣的反爬虫机制,建议使用代理或者加入适当的延时等策略来规避反爬虫机制。另外,爬虫行为需要遵守相关法律法规和网站的Robots协议。