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

咨询电话:4000806560

Python 爬虫实战:如何爬取猫眼电影排行榜 Top100

Python 爬虫实战:如何爬取猫眼电影排行榜 Top100

在互联网的时代,信息变得愈发丰富,各种排行榜也是层出不穷。而对于喜爱电影的朋友而言,猫眼电影排行榜 Top100是一个常去的网站,对于想要了解当前热门电影的人而言,这是个动态变化的排行榜。

那么,有没有一种方式,能够把这些信息爬取下来,生成一份排行榜,供我们自己使用呢?答案是肯定的。Python 爬虫可以帮助我们完成这个任务,让我们来看看如何操作。

首先,我们需要安装爬虫所需要的库。在这个例子中,我们需要用到 requests 和 BeautifulSoup 库。你可以在命令行中输入以下指令来安装这两个库:

```python
pip install requests
pip install beautifulsoup4
```

有了这些库之后,我们就可以开始编写代码了。我们需要做的第一件事,就是请求猫眼电影排行榜 Top100的网页,获取其中的信息。这可以通过以下代码实现:

```python
import requests
from bs4 import BeautifulSoup

url = 'https://maoyan.com/board/4'
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)
html = response.text
```

这段代码中,我们首先定义了我们要请求的网址。然后,我们还定义了一些 headers ,这是为了模拟浏览器进行访问,防止被目标服务器识别出我们是爬虫,从而被禁止访问。最后,我们使用 requests 库中的 get 方法向目标服务器发送请求,获取其返回的 HTML 代码。

接下来,我们需要使用 BeautifulSoup 库中的一些方法,来解析这份 HTML 代码,获取其中的信息。我们需要做的第一件事,就是使用 BeautifulSoup 构造一个 BeautifulSoup 对象。我们可以使用以下代码实现:

```python
soup = BeautifulSoup(html, 'lxml')
```

这段代码中,我们传入了两个参数。第一个参数是我们要解析的 HTML 代码,第二个参数是解析器类型。在这个例子中,我们使用了 lxml 解析器。

现在,我们已经成功地将 HTML 代码转换为了 BeautifulSoup 对象。接下来,我们需要使用 BeautifulSoup 对象中的一些方法,来获取我们想要的信息。我们要获取的信息包括电影名称、电影主演、上映时间、电影评分和电影图片链接。我们可以使用以下代码实现:

```python
movies = soup.select('dd')
for movie in movies:
    name = movie.select_one('.name').text
    star = movie.select_one('.star').text.strip()[3:]
    time = movie.select_one('.releasetime').text.strip()[5:]
    score = movie.select_one('.score').text
    image = movie.select_one('img')['data-src']
```

这段代码中,我们首先使用 soup 对象中的 select 方法获取了所有的 dd 标签,这些标签中包含了我们想要的信息。接着,我们使用了循环语句,遍历了所有电影信息。在每次循环中,我们使用 select_one 方法和 CSS 选择器来选取了电影名称、电影主演、上映时间、电影评分和电影图片链接等信息。其中,我们使用的 CSS 选择器包括 .name、.star、.releasetime、.score 和 img。

最后,我们可以将这些信息保存到一个文件中,供我们随时查看。我们可以使用以下代码实现:

```python
with open('maoyan_top100.txt', 'w', encoding='utf-8') as f:
    for i in range(len(movies)):
        f.write('排名:{}\n'.format(i+1))
        f.write('电影名称:{}\n'.format(movies[i].select_one('.name').text))
        f.write('电影主演:{}\n'.format(movies[i].select_one('.star').text.strip()[3:]))
        f.write('上映时间:{}\n'.format(movies[i].select_one('.releasetime').text.strip()[5:]))
        f.write('电影评分:{}\n'.format(movies[i].select_one('.score').text))
        f.write('电影图片链接:{}\n'.format(movies[i].select_one('img')['data-src']))
        f.write('\n')
```

通过运行这段代码,我们就可以将爬取到的猫眼电影排行榜 Top100信息保存到 maoyan_top100.txt 文件中。在这个文件中,我们可以看到每一部电影的排名、名称、主演、上映时间、评分和图片链接等信息。

通过上述代码,我们就成功地实现了对猫眼电影排行榜 Top100信息的爬取和解析,并成功地将这些信息保存在本地文件中。如果你对这个例子有所收获,不妨尝试编写一些其他的爬虫程序,将更多的互联网信息转换成为有用的数据吧!