本文共 1698 字,大约阅读时间需要 5 分钟。
本文实现在百度搜索栏中自动输入关键字搜索(以“二氧化碳人工合成淀粉”为例),并自动采集搜索的内容(自动点击下一页5次),采集内容包含文章标题,文章链接,文章的摘要,并显示在表中,有需要的话可以存储到excel中,效果如下图所示:
为了能处理获取到的数据,首先使用QWebEngine做了一个简单的浏览器,输入地址即可进入指定网页,然后添加了显示采集结果的表,如有需要可以将表中的内容存储到excel中。
先用浏览器开发者工具查看下百度的搜索页面:
分析可知,本页显示的搜索结果在id=content_left的div中,真正需要的是类名为result的内容,id反而没什么用。
标题及链接位置:
摘要位置:
下一页位置:
主要的js代码:
//点击下一页的函数
function press_next(){
var next_elements = document.querySelectorAll('#page .n');
if(next_elements){
if(next_elements.length===1)
next_elements[0].click();
else
next_elements[1].click();
}
};
//获取搜索结果的函数
function get_result(){
var content_left = document.getElementById('content_left');
if(content_left){
var can_press = false,i,cur_result,end_result;
var start_index = window.press_counter*10 + 1;
var end_index = (window.press_counter+1)*10;
if(window.press_counter===0)end_index = end_index+1;
for(i=start_index;i<=end_index;i++){
cur_result = document.getElementById(i+'');
end_result = document.getElementById(end_index+'');
//防止id=11多次获取(第一点击下一页时,还停留在第一页的情况)
if (!end_result)
break;
if(cur_result && cur_result.classList.contains('result')){
//标题不会空
var a_element = cur_result.querySelectorAll('.t a')[0];
var title = a_element.innerText;//标题
//连接
var link = a_element.getAttribute('href');//文章连接
title = title.split('...').join('');
//摘要(可能会空)
var abstract = '';
var abstract_elements = cur_result.getElementsByClassName('c-abstract');//摘要
if (abstract_elements && abstract_elements.length > 0){
abstract = abstract_elements[0].innerText;
abstract = abstract.split('...').join('');
}
}
}
}
}
//输入关键字并点击搜索按钮
var input_element = document.getElementById('kw');
input_element.value = 'keyword';
input_element = document.getElementById('su');
input_element.click();
转载地址:https://blog.csdn.net/hulinhulin/article/details/121153206 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!