[英]Scrape a Dynamic Website using Java with Selenium?
我正在尝试抓取https://www.rspca.org.uk/findapet#onSubmitSetHere
以获取所有待领养宠物的列表。
在使用crawler4j
之前,我已经构建了 web 个爬虫,但网站是 static。
由于https://www.rspca.org.uk/findapet#onSubmitSetHere
不是 static 网站,我该如何抓取它? 是否可以? 我应该使用哪些技术以及如何使用?
更新:
当您在 UI 中填写搜索表单(选择宠物类型并输入邮政编码/城镇或县)时,结果将显示在搜索框下方。
红色突出显示为搜索栏,黑色突出显示为结果。
我正在尝试抓取结果以及每个结果的内容。
我查看了浏览器为检索结果而发出的请求,但从 Chrome 开发工具中看不出发出的请求是什么。
一旦浏览器呈现它,您可以使用 Selenium 从 DOM 中提取信息,但我认为更简单的解决方案是使用“开发人员工具”来查找浏览器在单击“搜索”按钮时发出的请求,并尝试重现那个。
在这种情况下,POST 到https://www.rspca.org.uk/findapet?p_p_id=petSearch2016_WAR_ptlPetRehomingPortlets&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&_petSearch2016_WAR_ptlPetRehomingPortlets_action=search
POST 请求的主体包含很多参数,包括animalType
和location
。 请求的内容类型是 application/x-www-form-urlencoded。
要查看这些参数,go 到 chrome 开发工具中的“网络”选项卡,单击“findapet”请求(我这样做时它是列表中的第一个),然后单击“有效负载”选项卡以查看查询字符串参数和表单参数(包含animalType
和location
)
响应包含 HTML。
我会尝试向该端点发出请求,然后在响应中解析 HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.