Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0561
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次 使用selenium模拟了浏览器的行为
- 模拟了填写表单的过程
- 有两种方式可以填写表单
- 可以 填写表单 + 加回车
- 也可以 填写表单 + 点击按钮
- selenium 和 其他爬虫工具相比
- 可以利用deckodriver
- 驱动firefox和网页做出
- 交互动作
- interaction
- 驱动firefox和网页做出
- 可以利用deckodriver
- 还有什么交互动作可以做吗?
- 总共五种
- 代码可以翻页
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 初始化 WebDriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver') # 替换为你的 chromedriver 路径
# 访问百度视频首页
driver.get('https://haokan.baidu.com/')
# 等待页面加载完成
time.sleep(5)
# 获取初始的视频标题列表
video_titles = set()
# 定义下拉加载函数
def scroll_down():
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3) # 等待页面加载新内容
# 模拟下拉加载5次
for _ in range(5):
scroll_down()
# 获取所有视频标题
title_elements = driver.find_elements(By.XPATH, '//div[@class="video-title"]')
for element in title_elements:
video_titles.add(element.text)
# 打印视频标题列表
print("视频标题列表:")
for title in video_titles:
print(title)
# 关闭浏览器
driver.quit()
- 找到 一个比较靠后的视频标题
- 检查元素
- 通过比照
- 找到合适的xpath
- 得到数量后
- 向下翻页
- 再次执行
- 得到数量增多效果
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 初始化 WebDriver
driver = webdriver.Firefox() # 替换为你的 chromedriver 路径
# 访问微博首页
driver.get('https://haokan.baidu.com/')
# 等待页面加载完成
time.sleep(5)
# 获取初始的微博用户名列表
usernames = list()
# 定义下拉加载函数
def scroll_down():
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(6) # 等待页面加载新内容
# 模拟下拉加载6次
for _ in range(6):
scroll_down()
# 获取所有微博用户名
username_elements = driver.find_elements(By.XPATH, '/html/body/div/div/div[1]/div[2]/div[2]/div[3]/div/ul/li/a/div[2]/h3')
for element in username_elements:
usernames.append(element.text)
# 打印用户名列表
print("微博用户名列表:")
for username in usernames:
print(username)
# 关闭浏览器
driver.quit()
- 结果
- 下次再说👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。




