我想用python爬取豆瓣电影top250的数据
时间: 2023-10-01 09:07:20 浏览: 147
好的,你可以使用 Python 的 requests 库和 BeautifulSoup 库来爬取豆瓣电影 Top250 的数据。
首先,使用 requests 库向豆瓣电影 Top250 的网页发送请求,获取网页源代码:
```python
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
```
接下来,使用 BeautifulSoup 库解析网页源代码,获取需要的数据:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_='info')
```
这里我们使用了 BeautifulSoup 的 find_all() 方法来查找 class 为 'info' 的 div 元素,这些元素包含了电影的相关信息。
接着,我们可以遍历这些电影信息,提取出需要的数据:
```python
for movie in movies:
title = movie.find('span', class_='title').text
rating_num = movie.find('span', class_='rating_num').text
quote = movie.find('span', class_='inq')
if quote:
quote = quote.text
else:
quote = ''
print(title, rating_num, quote)
```
在这段代码中,我们使用了 find() 方法来查找 class 为 'title' 和 'rating_num' 的 span 元素,以及 class 为 'inq' 的 span 元素(如果存在的话)。然后,我们提取出这些元素的文本内容,并打印出来。
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_='info')
for movie in movies:
title = movie.find('span', class_='title').text
rating_num = movie.find('span', class_='rating_num').text
quote = movie.find('span', class_='inq')
if quote:
quote = quote.text
else:
quote = ''
print(title, rating_num, quote)
```
运行这段代码,就可以爬取豆瓣电影 Top250 的数据了。注意,由于豆瓣网站有反爬虫机制,如果你频繁地发送请求,可能会被封禁 IP,因此最好加上一些延时,以免被封禁。
阅读全文