匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python爬虫实战:利用requests库和beautifulsoup抓取豆瓣电影TOP250

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爬虫技术的时候,也需要注意一些法律风险和道德约束,不要忘记遵守相关规定。