使用Selenium爬虫

之前就用requests包爬的,但爬的过程中出现了一些错误,导致我以为爬的太多ip被禁了,后来就想了其它的方法,用到了Selenium包。程序写出来之后发现还是有错误,后来排查发现是碰到了网页链接失效导致的问题。

不过Selenium爬虫是真的慢,但是感觉比requests包爬的要安心一点。下面就总结一下我最近学习的Selenium。

  1. Selenium讲解、安装以及Chrome浏览器配置,可结合下面两个链接参考
    python爬虫之selenium的使用
    selenium 安装与 chromedriver安装
    下载chromedriver.exe之后,我就将其放在python.exe同一个安装目录下就可以了,没有像上面说的这么麻烦要放在Chrome浏览器里再去配置path环境。

  2. 先搞个小栗子,模拟打开浏览器,输入内容、点击等。

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver
### 使用 Java 和 Selenium 进行网络爬虫的实际操作 #### 准备工作 为了使用 Java 和 Selenium 构建一个有效的网络爬虫,需要先安装必要的库和驱动程序。确保已经配置好开发环境并引入了所需的依赖项。 ```xml <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency> ``` #### 初始化 WebDriver 创建一个新的 ChromeDriver 或其他浏览器驱动实例来启动目标浏览器,并设置窗口大小以便更好地模拟真实用户的浏览体验[^1]。 ```java System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); ``` #### 访问页面与交互 利用 `get` 方法打开指定 URL 的网页;接着可以调用诸如 `findElement(By...)`, `sendKeys(String text)` 等方法实现元素定位以及输入框填写等功能。 ```java // 打开百度首页 driver.get("https://www.baidu.com"); // 定位搜索框并发送关键词 WebElement searchBox = driver.findElement(By.id("kw")); searchBox.sendKeys("Selenium 教程"); // 提交表单触发查询动作 searchBox.submit(); ``` #### 处理 JavaScript 动态加载的内容 当遇到由 JavaScript 渲染的数据时,可以通过等待特定条件满足的方式来获取所需的信息。例如,等到某个元素可见后再继续执行后续逻辑。 ```java WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".result.c-container"))); List<WebElement> results = driver.findElements(By.cssSelector(".result.c-container")); for (WebElement result : results) { System.out.println(result.getText()); } ``` #### 关闭会话 完成抓取任务之后记得关闭当前浏览器实例以释放资源。 ```java driver.quit(); ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值