Python爬虫实战:利用requests库和beautifulsoup抓取豆瓣电影TOP250
随着互联网的发展,信息变得越来越容易获取。而对于一些爱好电影的小伙伴们来说,想要获取一些优质的电影资源也变得十分容易。那么,接下来我们就来一起学习一下如何利用Python爬虫技术,来抓取豆瓣电影TOP250的数据吧!
准备工作
在开始之前,我们需要准备以下环境:
- Python 3.x版本
- requests库
- beautifulsoup库
其中,requests库是Python的一个HTTP库,可以用来发送HTTP请求和获取HTTP响应。而beautifulsoup库则是一个可以从HTML或XML文件中提取数据的Python库。
获取页面
首先,我们需要使用requests库来获取豆瓣电影TOP250页面的HTML代码。具体代码如下:
```python
import requests
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.36 Edge/16.16299'
}
response = requests.get(url, headers=headers)
html = response.text
```
在代码中,我们设置了url参数为电影TOP250的页面地址,并设置了一个headers参数,模拟了一个浏览器的访问请求头信息。然后,我们使用requests库的get()方法获取了页面的HTML代码,并将其存储在html变量中。
解析页面
接下来,我们需要使用beautifulsoup库来解析HTML代码,并提取出我们需要的数据。具体代码如下:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movie_list = soup.find('ol', {'class': 'grid_view'})
```
在代码中,我们使用了BeautifulSoup()方法将获取到的HTML代码进行解析,并且指定了解析器类型为html.parser。然后,我们使用了find()方法查找页面中class为grid_view的ol元素,并将其存储在movie_list变量中。
提取数据
当我们成功获取到页面中需要的数据后,下一步就是提取出我们需要的电影数据了。具体代码如下:
```python
movies = []
for movie_li in movie_list.find_all('li'):
title = movie_li.find('span', {'class': 'title'}).text
info = movie_li.find('div', {'class': 'bd'}).p.text
rating_num = movie_li.find('div', {'class': 'star'}).find('span', {'class': 'rating_num'}).text
rating_people = movie_li.find('div', {'class': 'star'}).find_all('span')[3].text
movie = {
'title': title,
'info': info,
'rating_num': rating_num,
'rating_people': rating_people
}
movies.append(movie)
```
在代码中,我们遍历了movie_list中的所有li元素,并使用find()方法提取出每一个电影的标题、简介、评分以及评分人数等信息,并将其存储在movies数组中。
输出数据
最后,我们只需要将提取出来的数据输出显示即可。具体代码如下:
```python
for movie in movies:
print('电影名称:', movie['title'])
print('电影简介:', movie['info'])
print('电影评分:', movie['rating_num'])
print('评分人数:', movie['rating_people'])
print('------------------------------------------')
```
在代码中,我们使用了一个迭代器遍历movies数组,并将每一个电影的信息输出到屏幕上。
总结
通过本篇文章的学习,我们可以了解到如何利用Python的requests库和beautifulsoup库来抓取豆瓣电影TOP250的数据,并成功提取出我们所需要的电影信息。当然,我们在使用Python爬虫技术的时候,也需要注意一些法律风险和道德约束,不要忘记遵守相关规定。