我试图从秘鲁政府采购和合同电子系统(SEACE) (使用RSelenium)抓取数据,直到我尝试从验证码图像中捕获网址,我才成功。我遇到的问题是验证码的链接有扩展名"dynamiccontent.properties.xhtml“(见下一个屏幕截图),而不是"JPEG","JPG”或"PNG“扩展名。

我想在这些扩展(JPEG,JPG或PNG)中使用R从验证码图像中获取URL,有什么建议吗?谢谢!
发布于 2021-02-14 20:17:26
您可以使用Rselenium获取验证码图像。但是你需要进行一些图像处理。因为验证码是动态生成的,所以你需要截取页面的屏幕截图,然后裁剪图像,以便只留下验证码。(尝试使用裁剪函数的尺寸参数来获得正确的效果)
在执行此操作时,请将窗口大小设置得较大,以便获得良好的分辨率。
对于裁剪图像,您将需要一些试验和错误。你可以使用包,成像器或magick的裁剪位。
library(RSelenium)
library(magick)
library(dplyr)
url<-"https://prodapp2.seace.gob.pe/seacebus-uiwd-pub/buscadorPublico/buscadorPublico.xhtml"
#### Selenium server
## For Firefox
rd<- rsDriver(browser = "firefox",port = 4581L)
remDr <- rd$client
remDr$open()
##Open url
remDr$navigate(url)
remDr$setWindowSize(2000,1600)
remDr$screenshot(display = FALSE, file = "captcha.png")
final_cap<-image_read("captcha.png") %>%
image_crop(.,"200X100+500+500")
plot(final_cap)请注意,我不支持任何非法的验证码破解-他们的设计是为了阻止机器人进入!

https://stackoverflow.com/questions/65551163
复制相似问题