利用requests库和BeautifulSoup库爬取豆瓣电影top25
时间: 2023-12-18 21:04:49 浏览: 106
好的,以下是使用 Python 的 requests 和 BeautifulSoup 库爬取豆瓣电影 top250 的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 请求 URL 和 headers
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'}
# 发送请求
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析页面
movies = soup.find_all('div', class_='hd')
for movie in movies:
print(movie.a.span.text)
```
以上代码会输出豆瓣电影 top250 的电影名称。您可以根据需求进行修改和扩展。
相关问题
利用requests库和BeautifulSoup库爬取豆瓣电影top25的名字和评分并写入列表中
好的,以下是使用 Python 的 requests 和 BeautifulSoup 库爬取豆瓣电影 top250 的电影名称和评分,并将结果写入列表中的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 请求 URL 和 headers
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'}
# 发送请求
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析页面
movies = soup.find_all('div', class_='hd')
ratings = soup.find_all('span', class_='rating_num')
results = []
for i in range(len(movies)):
movie = movies[i].a.span.text
rating = ratings[i].text
results.append([movie, rating])
print(results)
```
以上代码会输出豆瓣电影 top250 的电影名称和评分,并将结果写入列表中。输出的格式为:
```
[['肖申克的救赎', '9.7'], ['霸王别姬', '9.6'], ['这个杀手不太冷', '9.6'], ...]
```
您可以根据需求进行修改和扩展。
requests和BeautifulSoup库来爬取豆瓣电影Top 250的信息
`requests` 和 `BeautifulSoup` 是两个常用的Python库,用于网络数据抓取。`requests` 主要负责发送HTTP请求并获取网页内容,而 `BeautifulSoup` 则是一个HTML解析库,能方便地从HTML文档中提取出所需的数据。
首先,你需要安装这两个库,如果尚未安装,可以使用以下命令:
```bash
pip install requests beautifulsoup4
```
接下来,通过以下步骤爬取豆瓣电影Top 250的信息:
1. 导入所需的库:
```python
import requests
from bs4 import BeautifulSoup
```
2. 发送GET请求到豆瓣电影Top 250的页面URL:
```python
url = "https://movie.douban.com/top250"
response = requests.get(url)
```
3. 使用BeautifulSoup解析返回的HTML内容:
```python
soup = BeautifulSoup(response.text, 'lxml')
```
4. 找到包含电影信息的部分,通常在`<div>`标签内有电影标题、评分等数据,比如`class="hd"`:
```python
movies_list = soup.find_all('div', class_='hd')
```
5. 遍历每个电影元素,提取相关信息:
```python
for movie in movies_list:
title = movie.find('span', class_='title').text.strip()
rating = movie.find('span', class_='rating_num').text.strip() # 评分
print(f"电影名:{title}, 评分:{rating}")
```
6. 最后,记得处理可能出现的异常,如网络错误、解析错误等。
阅读全文