Day39:Python爬虫项目实战
在前面的章节中,我们了解了爬虫的用法,学会了使用爬虫进行一些网页内容的爬虫,也了解了一些高级的爬虫技术,现在我们我们整合前面所学的爬虫以及数据分析知识,一起来完成一个项目。
在这个项目中,我们将以猫眼电影网站(https://www.maoyan.com/)为例,爬取TOP100榜单的电影信息,总共需要爬取10页,然后进行数据分析。
- 导入所需的库和模块:
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
- 配置浏览器选项:
# 配置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")
- 通过url偏置跳转不同的页面:
我们观察猫眼的网站URL,一页只有10部电影,且每页面通过偏置实现,故我们也可以通过偏置改变URL,从而访问后面的页面。
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
- 获取数据:
我们可以使用BeautifulSoup
库中的select
方法选中我们要获取的元素,选中的名称可以通过在浏览器中国呢用Fn+F12
查看,同时我们用列表中字典的形式保存数据。
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. 任何对编程感兴趣的,且愿意掌握一门技能的人