import yaml import time from selenium import webdriver

if name == 'main': # 读取配置文件 keyword_info = [] try: with open('keyword-setting.yaml', 'r', encoding='utf-8') as f: data = yaml.load(f.read(), Loader=yaml.FullLoader) for item in data: if data[item]['enabled']: keyword_info.append(data[item]) except Exception as e: print('加载配置文件失败') exit(e)

# 设置浏览器
options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=options)

for keyword in keyword_info:
    # 搜索关键字
    driver.get('https://www.baidu.com/')
    search_input = driver.find_element_by_id('kw')
    search_input.send_keys(keyword['keyword'])
    search_input.submit()

    # 执行网页标识js代码
    js_script = '''
        let domainList = my_domains;
        let currentDomain = null;
        let a = null;
        let range = my_range;

        // 获取结果
        let container = document.querySelectorAll('.c-container');
        if(container.length == 0){
            container = document.querySelectorAll('.results > div');
            if(container.length == 0){
                container = document.querySelectorAll('.result > .res-list');
                if(container.length == 0){
                    container = document.querySelectorAll('.b_algo');
                }
            }
        }

        outerLoop:for (let item of container) {

            if(!item.classList.contains('new-pmd')){
                if(!item.classList.contains('vrwrap')){
                    if(!item.classList.contains('rb')){
                        if(!item.classList.contains('res-list')){
                            if(!item.classList.contains('b_algo')){
                                continue
                            }
                        }
                    }
                }
            }


            // 获取结果域名
            currentDomain = item.querySelector('.c-color-gray');

            if(currentDomain == null) {
                currentDomain = item.querySelector('.citeurl');
                if(currentDomain == null){
                    currentDomain = item.querySelector('.fb');
                    if(currentDomain == null){
                        currentDomain = item.querySelector('.g-linkinfo');
                        if (currentDomain == null){
                            currentDomain = item.querySelector('.b_attribution')
                        }
                    }
                }
            }

            for (domain of domainList) {
                if (currentDomain != null && currentDomain != undefined && currentDomain.innerText.indexOf(domain) >= 0 && currentDomain.innerText.indexOf('广告') < 0 && currentDomain.innerText.indexOf('百度') < 0) { // 去除广告

                    // 排名
                    let div = document.createElement('div')
                    div.innerText = '排名:' + range
                    div.style.position = 'absolute'
                    div.style.left = item.getBoundingClientRect().left - 90  + 'px'
                    div.style.top = item.getBoundingClientRect().top + 'px'
                    div.style.border = '5px #f00 solid'
                    div.style.padding = '6px'
                    div.style.fontWeight = 'bold'
                    div.style.fontSize = '17px'                         
                    document.getElementsByTagName('body')[0].appendChild(div)

                    // 边框
                    item.style.border = '5px #f00 solid';
                    break outerLoop;

                }
            }
        }

        // 删除必应搜索时左边的浮窗
        let el = document.querySelector('#textDeeplinksWidgetContainer');
        if(el != undefined || el != null){
            el.remove();
        }
        
    '''
    driver.execute_script(js_script, keyword['domain'], keyword['range'])

    # 等待结果页面加载完成
    time.sleep(3)

# 关闭浏览器
driver.quit()
Selenium WebDriver 低版本浏览器兼容性优化:百度搜索结果标识脚本

原文地址: https://www.cveoy.top/t/topic/m2Mp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录