• python+selenium实现百度关键词搜索自动化操作


    缘起

    之前公司找外面网络公司做某些业务相关关键词排名,了解了一下相关的情况,网络公司只需要我们提供网站地址和需要做的关键词即可,故猜想他们采取的方式应该是通过模拟用户搜索提升网站权重进而提升排名。

    不过后续公司的网站卡在第二页那个公司一直也没能把排名做到首页,因为赶巧百度推出了惊雷算法打击这种刷排名的方式。

    但这个算法实际的打击面应该并不会很精准,现在也依然还有很多公司在做这方面的业务。

    之前接触到selenium,了解了一些基本的功能,今天尝试实现一下百度搜索相关关键词然后定位目标网站进行访问等基本操作。

    注意事项

    既然说到刷,必然涉及到使用海量的IP。

    • 自建IP池

    一般可以自己搭建IP池,通过程序爬取各类免费IP网站上的IP和端口号,然后进行验证,可以用的就入库,不能用的就删掉。

    但是免费的永远是最最贵的,虽然搭建比较简单,但IP的有效率很低且能用的基本速度也非常慢。

    • 购买IP

    现在有很多IP服务商都提供爬虫接口,我试用过芝麻、牛魔、IP精灵、站大爷、ET等很多提供此类服务的服务商家的测试套餐,然鹅基本上都比我自建的IP池的质量都差,当然没有购买过收费套餐就暂不评论。

    但是我就是想做个学习的测试就没有必要购买此类收费服务了,不过我发现了个非常靠谱的IP服务商。。他们家的免费测试的IP都能直接看爱奇艺720p,真心666,只想低调使用就不透漏了。

    代码部分

    
    from selenium import webdriver
    import requests,time
    
    #自建IP池
    def get_proxy():
        r = requests.get('http://127.0.0.1:5555/random')
        return r.text
    
    # 使用兔子IP免费爬虫代理
    import random
    
    FILE = './tuziip.txt'  # 读取的txt文件路径
    
    # 获取代理IP
    def proxy_ip():
        ip_list = []
        with open(FILE, 'r') as f:
            while True:
                line = f.readline()
                if not line:
                    break
                ip_list.append(line.strip())
        ip_port = random.choice(ip_list)
        return ip_port
    
    
    def bd():
        chromeOptions = webdriver.ChromeOptions()
    
        # 设置代理
        chromeOptions.add_argument("--proxy-server=http://"+proxy_ip())
        # 一定要注意,=两边不能有空格,不能是这样--proxy-server = http://202.20.16.82:10152
        browser = webdriver.Chrome(chrome_options = chromeOptions)
    
        # 查看本机ip,查看代理是否起作用
        browser.get("https://www.baidu.com/")
        browser.find_element_by_id("kw").send_keys("ip")
        browser.find_element_by_id("su").click()
        time.sleep(2)
        browser.find_element_by_id("kw").clear()
        time.sleep(1)
        browser.find_element_by_id("kw").send_keys("ip代理")
        browser.find_element_by_id("su").click()
        time.sleep(2)
        browser.find_element_by_id("kw").clear()
        time.sleep(1)
        browser.find_element_by_id("kw").send_keys("兔子ip代理")
        browser.find_element_by_id("su").click()
        time.sleep(2)
        browser.find_element_by_id("kw").clear()
        time.sleep(1)
        browser.close()
        # 退出,清除浏览器缓存
        browser.quit()
    if __name__ ==  "__main__":
        while True:
            print(proxy_ip)
            bd()
    

    运行程序,程序可自动打开浏览器,进入百度,搜索关键词IP,停顿2秒,清除搜索框内容,停一秒输入“IP代理”,然后停顿、清除、再搜索"目标关键词",然后清楚缓存退出浏览器,再更换IP开始新一轮。

    如果要实现搜索目标关键词,选择目标网站点击进入目标网站,就需要使用selenium相关的元素选择了,这个就不多介绍了,很简单看下selenium的相关文档就ok了。

  • 相关阅读:
    Container Attached Storage: A primer
    1.3-Air302(NB-IOT)-新建lua文件和lua文件的变量,函数调用
    STM32+ESP8266+AIR202/302基本控制篇-114-功能测试-APP扫码绑定Air302(NB-IOT),并通过MQTT和Air302(NB-IOT)实现远程通信控制
    1.2-Air302(NB-IOT)-刷固件,下载和运行第一个lua程序
    1.1-Air302(NB-IOT)-硬件使用说明
    006-STM32+ESP8266+AIR202/302基本控制方案(阿里云物联网平台)-阿里云物联网平台加入规则引擎(云产品流转),让两个MQTT设备之间实现通信
    004-在阿里云物联网平台上动态注册设备(基于Android)
    30-STM32+W5500+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(Linux系统)
    30-STM32+W5500+AIR202基本控制篇-功能优化-MQTT服务器配置SSL单向认证(.Windows系统)
    数据处理思想和程序架构: 单片机stm32的flash保存数据优化方案(让擦写次数达到上百万至上千万次)
  • 原文地址:https://www.cnblogs.com/aosky/p/12029362.html
Copyright © 2020-2023  润新知