Day39:Python爬虫项目实战

alt

在前面的章节中,我们了解了爬虫的用法,学会了使用爬虫进行一些网页内容的爬虫,也了解了一些高级的爬虫技术,现在我们我们整合前面所学的爬虫以及数据分析知识,一起来完成一个项目。

在这个项目中,我们将以猫眼电影网站(https://www.maoyan.com/)为例,爬取TOP100榜单的电影信息,总共需要爬取10页,然后进行数据分析。

  1. 导入所需的库和模块:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import pandas as pd
import time
import numpy as np
  1. 配置浏览器选项
# 配置Chrome浏览器驱动
chrome_options = Options()
chrome_options.add_argument("User_agent")  # 浏览器模式,便于手动验证滑块
driver = webdriver.Chrome(chrome_options=chrome_options)

# 发送HTTP请求并获取页面内容
url = "https://www.maoyan.com/board/4?offset=0"
driver.get(url)
time.sleep(5)
page_content = driver.page_source
# 使用BeautifulSoup解析页面内容并提取电影信息
soup = BeautifulSoup(page_content, "html.parser")
  1. 通过url偏置跳转不同的页面:

我们观察猫眼的网站URL,一页只有10部电影,且每页面通过偏置实现,故我们也可以通过偏置改变URL,从而访问后面的页面。

10alt

for offset in range(0, 100, 10):
    url = f"https://www.maoyan.com/board/4?offset={offset}"
    driver.get(url)
    time.sleep(5) #出现滑块可验证
    page_content = driver.page_source
  1. 获取数据:

我们可以使用BeautifulSoup库中的select方法选中我们要获取的元素,选中的名称可以通过在浏览器中国呢用Fn+F12查看,同时我们用列表中字典的形式保存数据。

11alt

soup = BeautifulSoup(page_content, "html.parser")
    items = soup.select("dd")
    for item in items:
        movie = {}
        movie["rank"] = item.select_one(".board-index").text #排名
        movie["name"] = item.select_one(".name a").text #电影名
        movie["score"] = item.select_one(".score").text #得分
        star = item.select_one(".star").text #主演
        movie["star"] = str(star).replace('\n', '').strip()[3:] #格式化主演信息
        release = item.select_one(".releasetime").text #上映时间
        movi

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

大模型-AI小册 文章被收录于专栏

1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人

全部评论
怎么就串起来了
点赞 回复 分享
发布于 2023-07-14 15:21 上海

相关推荐

笑死 不是哥们离校了我真要睡街了 加上还有几w的贷款 不接受我准备去当三和大神
梦想是成为七海千秋:没事,hr这下就有底气了,下次遇到一个不接受的就说,你看,人家这学历都接受了,你凭什么不接受
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务