zoukankan      html  css  js  c++  java
  • selenium+chromedriver刷点击量

    #coding=utf-8
    
    import re
    import time
    import json
    import requests
    from selenium import webdriver
    from selenium.common.exceptions import TimeoutException
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    URL = u'www.baidu.com'
    
    def get_http_proxy_from_pool():
        proxy = {}
        try:
            url = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
            response = requests.get(url)
            jsonstr = response.text
            result = json.loads(jsonstr)
            if result.get("code") == 1:
                proxy_list = result.get("data")
                proxy_item = proxy_list[0]
                proxy = {"http":"http://%s:%s"%(proxy_item.get("proxy_ip"),proxy_item.get("proxy_port"))}
            else:
                raise Exception("failed to get http proxy.")
        except Exception as e:
            print str(e)
        finally:
            return proxy
    
    
    def get_desired_capabilities():
        proxy = get_http_proxy_from_pool().get(u"http")
        print u"当前代理: %s" % proxy
        options = webdriver.ChromeOptions()
        desired_capabilities = options.to_capabilities()
        desired_capabilities[u'proxy'] = {
                                        u"httpProxy": proxy,
                                        u"ftpProxy": proxy,
                                        u"sslProxy": proxy,
                                        u"noProxy": None,
                                        u"proxyType": u"MANUAL",
                                        u"class": u"org.openqa.selenium.Proxy",
                                        u"autodetect": False}
        return desired_capabilities
        
    
    def get_chrome_browser():
        desired_capabilities = get_desired_capabilities()
        browser = webdriver.Chrome(desired_capabilities = desired_capabilities)
        return browser
    
    def get_headless_chrome_browser():
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('headless')
        desired_capabilities = get_desired_capabilities()
        browser = webdriver.Chrome(desired_capabilities = desired_capabilities, chrome_options=chrome_options)
        return browser
        
    def search_keyword(keyword):
        browser = get_headless_chrome_browser()
        #设置超时时间
        wait = WebDriverWait(browser, 5) 
        try:
            browser.get(URL)
            #等待搜索框与搜索按钮加载完成
            input = wait.until(EC.presence_of_element_located((By.ID, u'searchKey')))
            input.send_keys(keyword)
            button = wait.until(EC.element_to_be_clickable((By.ID, u'btn-search')))
            button.click()
            print u"%s搜索成功" % keyword
        except Exception as e:
            print(u'搜索过程出错')
        finally:
            browser.delete_all_cookies()
            browser.close()
    
    
    def main():
        results = get_company_from_mysql()
        for result in results:
            keyword = result[0] if result else ""
            print keyword
            search_keyword(keyword)
            time.sleep(1)
    
    
    if __name__=='__main__':
        main()
  • 相关阅读:
    C++ tinyXml直接解析XML字符串
    留言板小程序开发笔记3
    如何去除 gvim 的 acp和 "option omnifunc is not set" 的问题
    如何修改bootstrap模态框的backdrop蒙版区域的颜色?
    Windows下卸载软件时提示 等待先前的卸载完成? 终止 dllhost.exe 进程
    thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?
    thinkphp中的Ueditor的使用, 以及如何传递编辑器内容到后台?
    留言板小程序开发笔记2
    分页器的js实现代码 bootstrap Paginator.js
    windows的gvim总是报错: +iconv fencview.vim
  • 原文地址:https://www.cnblogs.com/themost/p/9590504.html
Copyright © 2011-2022 走看看