| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | 
							- #import redis
 
- import time
 
- #import json
 
- from selenium import webdriver
 
- from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 
- import time
 
- import os
 
- import urllib.parse
 
- from selenium.webdriver.support.ui import WebDriverWait
 
- from selenium.webdriver.common.by import By
 
- from selenium.webdriver.support import expected_conditions as EC
 
- import dataset
 
- import codecs
 
- import random
 
- import requests
 
- import time
 
- import sys
 
- import docker
 
- import codecs
 
- import random
 
- import os
 
- import time
 
- driver=None
 
- headers = {
 
-         "Authorization": "Bearer " + "t35vhZtWNgvDNWHc3DJh0OKll3mcB9GvC8K2EAkBug2",
 
-         "Content-Type": "application/x-www-form-urlencoded"
 
- }
 
- def send_msg(kw):
 
-     params = {"message": "處理關鍵字: "+kw}  
 
-     r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params=params)
 
- def empty_query(q):
 
-     global driver
 
-     googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
 
-     driver.get(googleurl)
 
-     time.sleep(3)
 
- def process_query(qs,domain):
 
-     print('processing...')
 
-     print(qs)
 
-     q=qs
 
-     global driver
 
-     googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
 
-     driver.get(googleurl)
 
-     time.sleep(3)
 
-     for i in range(10):
 
-         elmts=driver.find_elements_by_xpath("//div[@class='g']//div[@class='yuRUbf']//a")
 
-         idx=1
 
-         print("idx="+str(idx))
 
-         ranking=-1
 
-         for elmt in elmts:
 
-             href=elmt.get_attribute('href')
 
-             txt=elmt.text
 
-             if len(txt)>10:
 
-                 if domain in href:
 
-                     print(domain+" in "+ str(href)+" i:"+str(i))
 
-                     return i
 
-         elmt=driver.find_element_by_xpath("//a[@id='pnnext']")
 
-         webdriver.ActionChains(driver).move_to_element(elmt).perform()
 
-         webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
 
-     time.sleep(2)
 
- def re_get_webdriver():
 
-     global driver
 
-     result=[]
 
-     client = docker.from_env()
 
-     ls=client.containers.list()
 
-     print(ls)
 
-     for l in ls:
 
-         print(l.name)
 
-         if 'p4444' in l.name:
 
-             l.restart()
 
-             print('restarted')
 
-             time.sleep(6)
 
-         else:
 
-             print('name not correct')
 
- #    options = webdriver.EdgeOptions()
 
-     try:
 
-         print('trying 4444....')
 
-         options = webdriver.ChromeOptions()
 
-         driver = webdriver.Remote(
 
-             command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=options.to_capabilities())
 
-         print('4444 done')
 
-         driver.set_window_size(1400,1000)
 
-         print('driver is fine')
 
-         return
 
-     except:
 
-         print('driver except')
 
-         driver=None
 
-         return None
 
- def run_once(url,domain):
 
-     global driver
 
-     i=random.randint(0,20)
 
-     re_get_webdriver()
 
-     if driver is None:
 
-         print('driver is none')
 
-         return
 
-     try:
 
-         return process_query(url,domain)
 
-     except:
 
-         print('process_query exception')
 
- kw='ai行銷 choozmo'
 
- domain='choozmo.com'
 
- rank=run_once( kw,domain )
 
- if rank is not None:
 
-     db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
 
-     table=db['seo_clickjobs']
 
-     print('upserting....')
 
- #    table.insert({'kw':kw,'domain':domain,'category':'choozmo','page':rank},keys=['kw'])
 
-     table.insert({'kw':kw,'domain':domain,'category':'choozmo','page':rank})
 
-     db.commit()
 
- print(rank)
 
- time.sleep(0.001)
 
 
  |