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 21:04:42 浏览: 115
要将数据存储到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选择器获取电影名称和链接,并将其打印出来。
需要注意的是,此代码仅供学习和参考,不应用于商业用途或非法用途。爬取网站数据时应注意遵守相关法律法规和网站的使用规定。
这段代码没有显示返回结果import requests from bs4 import BeautifulSoup url = "https://movie.douban.com/annual/2022?fullscreen=1&source=movie_navigation" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67" } content = requests.get(url, headers=headers).text soup = BeautifulSoup(content, "html.parser") all_names = soup.select('span.movie-name-text a') for name in all_names: print(name.string)
抱歉,我之前的回答有误。你是对的,这段代码没有显示返回结果。原因是可能没有找到匹配的电影名称。
为了确保正确显示返回结果,请确保网页中存在具有`class`为`movie-name-text`的`span`标签,并且这些标签内部包含了`a`标签。你可以在浏览器中手动检查网页结构,确认是否存在这样的标签。
另外,你可以尝试打印出`all_names`变量,查看它的内容是否为空。如果为空,可能是网页结构或请求发生了问题。
请确保你的网络连接正常,并且豆瓣电影年度榜单页面可正常访问。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助你解决问题。
阅读全文