爬虫日常练习

news/2024/11/20 22:06:15/

1.反webdriver自动化检测爬取

有的网站会有检测webdriver的反爬手段,这时候就需要做一些操作防止被网页检测到,下面直接给出固定代码段方法:

python">from selenium.webdriver.support.ui import WebDriverWait# 配置 ChromeOptions 防止被检测
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--incognito")  # 使用隐身模式
# options.add_argument('--headless')  # 无头浏览,开发和调试时可以注释掉这行# 创建 WebDriver 实例
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
})
wait = WebDriverWait(driver, 10)

网站实战反反爬:

python">from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.support.ui import WebDriverWait# 配置 ChromeOptions 防止被检测
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--incognito")  # 使用隐身模式
# options.add_argument('--headless')  # 无头浏览,开发和调试时可以注释掉这行# 创建 WebDriver 实例
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
})
wait = WebDriverWait(driver, 10)
driver.get('https://antispider1.scrape.center/')
time.sleep(5)
all_data_dict = {}
for i in range(10):titles = driver.find_elements(By.XPATH, '//*[@id="index"]/div[1]/div[1]/div/div/div/div[2]/a/h2')grades = driver.find_elements(By.XPATH, '//*[@id="index"]/div[1]/div[1]/div/div/div/div[3]/p[1]')data_dict = {}for title, grade in zip(titles, grades):data_dict[title.text] = grade.textall_data_dict.update(data_dict)print(f"页数 {i + 1}: {data_dict}")try:search_next = driver.find_element(By.XPATH, '//*[@id="index"]/div[2]/div/div/div/button[2]/i').click()time.sleep(3)except Exception as e:print(f"单击下一页出错:{e}")# 打印所有页面的数据
print('-' * 80)
print("所有数据:", all_data_dict)
time.sleep(3)
driver.quit()

2.boss直聘多页爬取

python">from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import timedriver = webdriver.Chrome()
driver.get('https://www.zhipin.com/?ka=header-home-logo')
time.sleep(3)searching = driver.find_element(By.XPATH, '//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
searching.send_keys('大数据爬虫')
time.sleep(3)
searching.send_keys(Keys.ENTER)
time.sleep(10)
for i in range(3):titles = driver.find_elements(By.XPATH, '//span[@class="job-name"]')prices = driver.find_elements(By.XPATH, '//span[@class="salary"]')for title, price in zip(titles, prices):print(f'正在爬取第{i+1}页......')print(f'职位名称:{title.text}')print(f'薪资:{price.text}')search_next = driver.find_element(By.XPATH, '//i[@class="ui-icon-arrow-right"]').click()time.sleep(3)time.sleep(10)
driver.quit()

http://www.ppmy.cn/news/1548587.html

相关文章

lua调用C语言函数,在函数中进行类型检查

使用lua_is*函数族进行检查(除了lua_type之外的另一种方式) Lua C API提供了一系列lua_is*函数,如lua_isnumber、lua_isstring、lua_isboolean等,用于检查栈上元素的类型。示例代码如下,假设我们有一个C函数&#xff0…

LabVIEW三针自动校准系统

基于LabVIEW的智能三针自动校准系统采用非接触式激光测径仪对标准三针进行精确测量。系统通过LabVIEW软件平台与硬件设备的协同工作,实现了数据自动采集、处理及报告生成,大幅提高了校准精度与效率,并有效降低了人为操作误差。 一、项目背景…

ITSS服务经理: 山西科技学院智能铸造现代产业学院揭牌

记者从山西科技学院传来喜讯,近日,在该院工程训练中心与智能铸造现代产业学院于山西省晋城市泽州县绿色智能铸造创新产业园隆重举行的揭牌启动仪式上,标志着学院迈入崭新篇章。应用型本科高校,作为孕育高素质应用人才的摇篮&#…

25. 架构能力

文章目录 第25章 架构能力25.1 个人能力:架构师的职责、技能和知识职责技能知识那经验方面呢? 25.2 软件架构组织的能力25.3 成为更优秀的架构师接受指导指导他人 25.4 小结25.5 扩展阅读25.6 问题讨论 第25章 架构能力 人生苦短,学海无涯。 …

在Linux环境下部署TiDB可以通过几种不同的方法

在Linux环境下部署TiDB可以通过几种不同的方法,包括使用TiDB官方提供的二进制包、Docker容器、Kubernetes等。最常见的方法是使用TiDB官方的二进制包,下面将详细介绍如何在Linux系统上手动部署TiDB。 前提条件 操作系统:Linux(例…

<项目代码>YOLOv8 草莓成熟识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

解读InnoDB数据库索引页与数据行的紧密关联

目录 一、快速走进索引页结构 (一)整体展示说明 (二)内容说明 File Header(文件头部) Page Header(页面头部) Infimum Supremum(最小记录和最大记录) …

Python去除图像白色背景

使用Pillow去除图像背景 安装依赖: pip install pillow 实现步骤: 使用Pillow库加载图像,并将其转换为RGBA模式,以支持透明度。遍历图像的每个像素,检查其红色、绿色和蓝色值是否都高于预设的阈值。对于被视为白色…