请教个Jsoup爬虫的问题

kali黑 发布于 2021/12/23 16:15
阅读 844
收藏 1

请教下,我用

Jsoup爬某个链接的时候需要触发点击才能走下去<div class="attribution">
       <a href="javascript:;" style="font-size: 2em;" onclick="challenge();">点击访问</a>
       <br>

然后这种怎么处理,好像Jsoup没办法做到点击事件

加载中
2
penngo
penngo

这种可以使用真正的浏览器来执行js,比如selenium或者jcef,jsoup无法执行页面操作,只能解析html

0
湖水没了
湖水没了

查看并模拟 所有浏览器发出的请求就行 不一定要模拟点击 也不用执行js 除非有js签名算法

0
peachyy
peachyy
html unit 了解一下
0
馒头不热

找到

challenge()

执行里面的操作啊

0
Metrix_Engineer
Metrix_Engineer

可以使用selenium模拟点击实现

0
买房也用券
买房也用券

https://my.oschina.net/caohenghui/blog/5277503

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId><version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId><version>3.141.59</version>
    </dependency>

WebDriver driver = new ChromeDriver(options);
	    driver.get(url);
	    
	    //等待浏览器渲染页面再找到相关的元素
	    WebDriverWait wait = new WebDriverWait(driver,10,2);
	    WebElement searchInput = wait.until(new ExpectedCondition<WebElement>(){
	        @Override
	        public WebElement apply(WebDriver text) {
	              return text.findElement(By.id("key"));
	            }
	      });
	    //把关键字填入搜索框
	    searchInput.sendKeys(keywords);
	    
	    //模拟点击搜索按钮
	    driver.findElement(By.xpath("//div[@class='form']/button")).click();

 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部