鱼C论坛

 找回密码
 立即注册
查看: 1196|回复: 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请求。我们需要设置请求头来模拟真实用户访问,以避免被网站屏蔽。
import requests

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'
}
url = 'https://maoyan.com/board/4'
res = requests.get(url, headers=headers)

2. 解析HTML页面

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

soup = BeautifulSoup(res.text, 'html.parser')
items = soup.select('.board-wrapper dd')

3. 提取所需信息

在这个例子中,我们将提取电影排名、电影名称、电影主演、电影上映时间和评分。我们将使用字典和列表来存储获取到的信息。
movies = []
for item in items:
movie = {}
movie['rank'] = item.select_one('.board-index').text
movie['title'] = item.select_one('.name a').text
movie['star'] = item.select('p.star')[0].text.strip()[3:]
movie['time'] = item.select('p.releasetime')[0].text.strip()[5:]
movie['score'] = item.select_one('.score .integer').text + item.select_one('.score .fraction').text
movies.append(movie)

4. 完整代码
import requests
from bs4 import BeautifulSoup

def get_movies():
    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'
    }
    url = 'https://maoyan.com/board/4'
    res = requests.get(url, headers=headers)
    soup = BeautifulSoup(res.text, 'html.parser')
    items = soup.select('.board-wrapper dd')
    
    movies = []
    for item in items:
        movie = {}
        movie['rank'] = item.select_one('.board-index').text
        movie['title'] = item.select_one('.name a').text
        movie['star'] = item.select('p.star')[0].text.strip()[3:]
        movie['time'] = item.select('p.releasetime')[0].text.strip()[5:]
        movie['score'] = item.select_one('.score .integer').text + item.select_one('.score .fraction').text
        movies.append(movie)
    
    return movies
    
三、注意事项

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

(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-12-27 11:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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