最近使用java爬虫收集数据,遇到js动态数据的时候使用如jsoup是获取不到数据的,所以要先进行页面的渲染。
下面是以京东商城数据为例,使用Selenium需要先下好相应的驱动,我使用的是Chrome;还需要加入common-exec包
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* Created with IntelliJ IDEA.
* User: Mr_Tank_
* Date: 13-11-29
* Time: 下午9:52
* To change this template use File | Settings | File Templates.
*/
public class seleniumTest {
public static void main(String args[]){
System.getProperties().setProperty("webdriver.chrome.driver", "E:\\driver\\chromedriver.exe");
WebDriver webDriver =new ChromeDriver();
webDriver.get("http://list.jd.com/9987-653-655-0-0-0-0-0-0-0-1-1-1-1-1-72-4137-33.html");
WebElement webElement = webDriver.findElement(By.xpath("//div[@id='plist']"));
System.out.println(webElement.getAttribute("outerHTML"));
WebElement li=webElement.findElement(By.xpath("//li[@index='1']"));
String name=li.findElement(By.xpath("//li[@index='1']//div[@class='p-name']/a")).getText();
System.out.println("商品名:"+name);
String price=li.findElement(By.xpath("//li[@index='1']//div[@class='p-price']/strong")).getText();
System.out.println("价格:"+price);
String eva=li.findElement(By.xpath("//li[@index='1']//span[@class='evaluate']/a[@target='_blank']")).getText();
System.out.println("评价:"+eva);
webDriver.close();
}
}
结果:

分享到:
相关推荐
而Selenium WebDriver则是一个自动化测试工具,它可以控制各种浏览器并模拟用户交互,包括使用JavaScript渲染网页。 以下是使用C#和Selenium+PhantomJS抓取数据的步骤: 1. **环境准备**: - 打开Visual Studio ...
数据提取:使用Selenium定位页面中持股比例数据的位置,并提取这些数据。 数据存储:将提取的数据保存为CSV或JSON等格式的文件。 异常处理:添加异常处理机制,确保在遇到登录失败、页面加载错误等问题时能够记录...
4. **等待页面加载**:为了确保JavaScript完全渲染页面,我们使用`time.sleep(2)`让程序暂停2秒。这个时间可以根据实际情况调整。 5. **解析页面**:使用`driver.page_source`获取渲染后的HTML源码,并使用...
在IT行业中,自动化测试和网页抓取是两个重要...结合JDK,我们可以编写Java代码,通过Selenium WebDriver接口直接操控Chrome,实现网页的动态渲染和数据提取。对于初学者而言,这份资源将极大地简化了学习和实践过程。
在本项目中,我们主要探讨的是如何利用Java和Selenium库来实现对“房天下”和“链家”两个房地产网站的小区数据爬取。这个项目结合了多线程和代理IP的技术,以提高爬虫的效率和规避可能的反爬策略。下面将详细介绍这...
在这个项目中,我们使用了Python结合Selenium和PyQuery来实现对1688网站商品详情页的图片和标题的爬取,并将图片进行下载和压缩。 Selenium是一个强大的浏览器自动化工具,它能够模拟真实用户的行为,如点击按钮、...
而PhantomJS是一个无头浏览器,意味着它可以在没有用户界面的情况下运行,这对于自动化任务和数据抓取非常有用,因为它可以快速执行JavaScript并加载页面内容。 在Python中,我们可以使用Selenium库来控制PhantomJS...
Selenium本身是一款广泛使用的自动化测试工具,允许用户模拟真实浏览器行为,进行网页元素的交互和页面状态的检查。而selenium_extensions则是对Selenium功能的进一步增强。 首先,让我们深入了解selenium_...
总结来说,使用Python的Selenium框架爬取“考试宝典”题目涉及的主要技术点包括:启动浏览器、页面元素定位、动态内容获取、数据存储以及应对反爬策略。通过这种方式,我们可以灵活地获取和处理网站上的实时数据。
在爬虫开发中,Selenium常被用来处理JavaScript渲染的动态页面,即那些需要通过交互才能显示全部内容的页面。 #### BeautifulSoup简介 BeautifulSoup是Python中一个用于解析HTML和XML文档的库,它提供了非常灵活的...
综上所述,这个项目可能包含了使用Python Selenium进行网页抓取的各个方面,包括元素定位、交互操作、动态内容处理以及可能的数据提取和异常处理等。要深入了解项目细节,需要查看项目源代码和文档。
在爬虫领域,Selenium常用于处理动态加载的内容,因为它可以执行JavaScript代码,加载并渲染页面。 **PhantomJS**: PhantomJS是一个无头浏览器,即它没有图形用户界面,但能够执行完整的浏览器功能,如加载和解析...
3. **元素定位**:通过CSS选择器、XPath或其他方法定位网页上的特定元素,进行交互或提取数据。 4. **处理JavaScript**:对于依赖JavaScript的页面,WebDriver可以执行JavaScript代码,例如通过`execute_script`方法...
在现代网页设计中,许多网站为了增强用户体验,或者防止数据被轻易爬取,会采用JavaScript来动态渲染页面内容。这种情况下,传统的网络爬虫可能无法抓取到完整的HTML,因为它们通常只处理服务器返回的静态页面。针对...
通过选择器语法,我们可以轻松地定位到网页元素并提取其属性值,适合处理结构化的网页数据。 3. **Selenium**: Selenium是一个自动化测试工具,但也可用于网页数据提取。它模拟真实浏览器行为,支持动态加载的...
4. **数据提取**:使用DOM操作或CSS选择器获取所需数据,可以配合正则表达式进行进一步的处理。 5. **错误处理和等待**:使用Try-Catch结构处理可能出现的异常,同时通过Wait机制确保网页元素加载完成。 在数据抓取...
以上内容覆盖了从 Selenium 基础概念到实战案例的各个方面,不仅介绍了 Selenium 的安装和使用方法,还详细阐述了如何通过各种元素定位技术实现自动化操作。此外,还包括了数据处理与存储、高级特性的应用等内容,...
3. **提取数据**:使用Selenium提供的API获取渲染后的DOM元素,提取所需数据。 4. **传递给Scrapy**:将数据传递回Scrapy的Item,通过Pipeline进行后续处理。 5. **关闭Selenium**:处理完当前请求后,关闭...
本文将深入探讨如何使用Python结合Selenium来爬取集团招聘网站的职位信息,并利用正则表达式进行数据过滤。 首先,Python是一种高级编程语言,以其简洁、易读的语法和丰富的库支持而闻名。在数据处理和网络爬虫领域...