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