本文实现在百度图片搜索栏中自动输入关键字搜索(以“军事”为例),并自动采集搜索的内容,采集内容包含图片标题,图片链接,显示在表中,并将图片下载到指定目录,效果如下图所示:
(一)网页分析
关键字输入框及搜索按钮
注意点击的是s_btn。
图片显示页面
图片标题存储在data-title的属性中,图片地址存储在data-objurl属性中。当图片增多时Imgpage会有更多。
(二)主要代码
输入关键字及点击搜索:
var keyword_input_element = document.getElementById('kw');
var search_elements = document.getElementsByClassName('s_btn');
keyword_input_element.value = '军事';
//点击百度一下按钮
search_elements[0].click();
获取图片信息的代码:
var imgid_element = document.getElementById('imgid');
if (imgid_element){
var imgpage_elements = document.getElementsByClassName('imgpage');
if (imgpage_elements && imgpage_elements.length > 0){
for (var i = 0;i < imgpage_elements.length;i ++){
var ul_elements = imgpage_elements[i].getElementsByTagName('ul');
if (ul_elements && ul_elements.length > 0){
var li_elememts = ul_elements[0].getElementsByTagName('li');
for (var j = 0;j < li_elememts.length;j ++){
const regex = /<[^>]+>/gi;
var title = li_elememts[j].getAttribute('data-title');
var link = li_elememts[j].getAttribute('data-objurl');
}
}
}
}
};
获取到图片的地址后,利用QWebEnginePage::download函数可以很方便地下载图片。