鱼C论坛

 找回密码
 立即注册
查看: 848|回复: 10

[技术交流] Python爬虫实战-猫眼电影Top100

[复制链接]
发表于 2023-5-28 15:49:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 学习编程中的Ben 于 2023-5-28 20:38 编辑

Python爬虫实战-猫眼电影Top100


一、简介

今天我们来分享一下如何使用Python爬虫,获取猫眼电影Top100的信息!我们将会使用requests库发送HTTP请求,并使用BeautifulSoup库解析HTML页面来提取所需信息,并将结果存储在列表中。

二、步骤

1. 发送HTTP请求

在这里,我们将使用requests库发送HTTP请求。我们需要设置请求头来模拟真实用户访问,以避免被网站屏蔽。

  1. import requests

  2. headers = {
  3. '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'
  4. }
  5. url = 'https://maoyan.com/board/4'
  6. res = requests.get(url, headers=headers)
复制代码


2. 解析HTML页面

使用BeautifulSoup库解析HTML页面,获取需要的信息。我们可以使用Chrome浏览器的开发者工具来查看页面的元素和属性,以方便我们编写爬虫代码。

  1. from bs4 import BeautifulSoup

  2. soup = BeautifulSoup(res.text, 'html.parser')
  3. items = soup.select('.board-wrapper dd')
复制代码


3. 提取所需信息

在这个例子中,我们将提取电影排名、电影名称、电影主演、电影上映时间和评分。我们将使用字典和列表来存储获取到的信息。

  1. movies = []
  2. for item in items:
  3. movie = {}
  4. movie['rank'] = item.select_one('.board-index').text
  5. movie['title'] = item.select_one('.name a').text
  6. movie['star'] = item.select('p.star')[0].text.strip()[3:]
  7. movie['time'] = item.select('p.releasetime')[0].text.strip()[5:]
  8. movie['score'] = item.select_one('.score .integer').text + item.select_one('.score .fraction').text
  9. movies.append(movie)
复制代码


4. 完整代码

  1. import requests
  2. from bs4 import BeautifulSoup

  3. def get_movies():
  4.     headers = {
  5.     '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'
  6.     }
  7.     url = 'https://maoyan.com/board/4'
  8.     res = requests.get(url, headers=headers)
  9.     soup = BeautifulSoup(res.text, 'html.parser')
  10.     items = soup.select('.board-wrapper dd')
  11.    
  12.     movies = []
  13.     for item in items:
  14.         movie = {}
  15.         movie['rank'] = item.select_one('.board-index').text
  16.         movie['title'] = item.select_one('.name a').text
  17.         movie['star'] = item.select('p.star')[0].text.strip()[3:]
  18.         movie['time'] = item.select('p.releasetime')[0].text.strip()[5:]
  19.         movie['score'] = item.select_one('.score .integer').text + item.select_one('.score .fraction').text
  20.         movies.append(movie)
  21.    
  22.     return movies
  23.    
复制代码

三、注意事项

在爬虫过程中,应该遵守以下几点:

(1) 尊重网站规则,不进行非法操作。

我们应该爬取网站上开放的信息,不要将爬虫用于商业用途或者非法用途,以免对网站造成损失。

(2)避免频繁访问同一网站,防止IP被封禁。

在进行爬虫操作时,应该控制请求速度和访问频率,避免被网站屏蔽。可以通过设置headers来模拟真实用户访问,避免被认为是爬虫。

(3) 不要一次性获取过多数据,应该适量控制获取速度和频率。

在爬虫过程中,可以设置每次获取的信息条数,以便于控制访问的频率。

(4) 爬虫也需要维护,及时更新代码,以应对网站信息结构的变化。

网站信息会随着时间的推移而发生改变,我们需要定期检查爬虫代码,以确保其能够正确地获取信息!

备注:当然你想吃公家饭你可以试试违法
@歌者文明清理员 @sfqxx @元豪 @liuhongrun2022

评分

参与人数 2荣誉 +6 鱼币 +6 贡献 +3 收起 理由
蓝屏爱好者 + 1 + 1 鱼C有你更精彩^_^
liuhongrun2022 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-28 15:50:01 | 显示全部楼层
6

评分

参与人数 1荣誉 +1 收起 理由
学习编程中的Ben + 1 很有美感吧

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-28 15:50:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-28 15:50:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-28 15:51:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-28 15:53:25 From FishC Mobile | 显示全部楼层
先支持一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-5-28 15:53:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-28 16:00:19 | 显示全部楼层
泰裤辣
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-28 16:00:47 From FishC Mobile | 显示全部楼层
学习编程中的Ben 发表于 2023-5-28 15:53

我用我小号给你评个分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-28 16:02:31 | 显示全部楼层
liuhongrun2022 发表于 2023-5-28 16:00
我用我小号给你评个分

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-28 18:03:55 | 显示全部楼层
你这代码没有缩进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 07:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表