jared пре 9 месеци
родитељ
комит
c38f52376b
1 измењених фајлова са 139 додато и 0 уклоњено
  1. 139 0
      deployment/selwire_click.py

+ 139 - 0
deployment/selwire_click.py

@@ -0,0 +1,139 @@
+import time
+import traceback
+import dataset
+from selenium import webdriver
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.common.keys import Keys
+from celery import Celery
+#import redis
+from celery.schedules import crontab
+import celery
+from celery.signals import celeryd_init
+from celery import signals
+import random
+from click import Option
+from selenium import webdriver
+import time
+import sys
+import os
+import zipfile
+from seleniumwire import webdriver
+import requests
+
+#from selenium import webdriver
+
+PROXY_PORT = 8080 # port
+PROXY_USER = 'choozmo' # username
+PROXY_PASS = 'Chuz83102968' # password
+
+
+custname=None
+
+param=sys.argv[1]
+
+r = requests.get('http://db.ptt.cx:3001/api/push/'+param+'?status=up&msg=OK&ping=')
+#U1cGPOJAQD
+#http://db.ptt.cx:3001/api/push/hzmMjOaHpl?status=up&msg=OK&ping=
+
+def selenium_jared_click():
+    global custname
+
+    r=random.randint(0,4)
+    options = {}
+
+    if r==0:
+        options['proxy']={'http': 'http://choozmo:Chuz83102968@172.105.205.52:8080'}
+    if r==1:
+        options['proxy']={'http': 'http://choozmo:Chuz83102968@139.144.120.184:8080'}
+    if r==2:
+        options['proxy']={'http': 'http://choozmo:Chuz83102968@172.104.92.245:8080'}
+    if r==3:
+        options['proxy']={'http': 'http://choozmo:Chuz83102968@172.104.67.159:8080'}
+    print(options)
+#    options = {
+#        'proxy': {
+#            'http': 'http://choozmo:Chuz83102968@172.105.205.52:8080'
+#            'http': 'http://choozmo:Chuz83102968@139.144.120.184:8080'
+#            'http': 'http://choozmo:Chuz83102968@172.104.92.245:8080'
+#            'http': 'http://choozmo:Chuz83102968@172.104.67.159:8080'
+#        }
+#    }
+    c_options = webdriver.ChromeOptions()
+    c_options.add_argument("--no-sandbox")
+    c_options.add_argument("--headless")
+    c_options.add_argument("--incognito")
+
+
+    db = dataset.connect('postgresql://postgres:eyJhbGciOiJI@172.105.241.163:5432/postgres')
+
+    mobile_emulation = {
+        "deviceMetrics": { "width": 360, "height": 640, "pixelRatio": 3.0 },
+        "userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" }
+    try:
+
+        driver = webdriver.Chrome(seleniumwire_options=options,options=c_options)
+
+
+    except:
+        traceback.print_exc()
+
+    #kw='真理大學國際生'
+    #domain='cia.au.edu.tw'
+    if custname is None:
+        custname='真理'
+    cursor=db.query("SELECT cust,plan,prefix,domain,kw,positive FROM public.seo_jobs where cust='"+custname+"' order by random() limit 1")
+    kw=None
+    domain=None
+    for c in cursor:
+        cust=c['cust']
+        kw=c['kw']
+        plan=c['plan']
+        prefix=c['prefix']
+        domain=eval(c['domain'])[0]
+        positive=eval(c['positive'])
+        break
+    #kw='真理大學教堂'
+    #domain='udn.com'
+    print(kw)
+    print(domain)
+
+    #kw='真理大學校友'
+    #kw='真理大學國際生'
+    #kw='真理大學張聰聯'
+    #domain='au.edu.tw'
+    #domain='pronews.tw'
+
+    driver.get('https://www.google.com?num=100')
+    time.sleep(3)
+    print(driver.current_url)
+    elmt = driver.find_element(By.XPATH, "//textarea[@name='q']")
+    time.sleep(1)
+    elmt.send_keys(kw)
+    elmt.send_keys(Keys.ENTER)
+    time.sleep(4)
+
+    elmts = driver.find_elements(By.XPATH, "//a[@jsname='UWckNb']")
+    numresults=len(elmts)
+    print('搜尋結果數量',numresults)
+    if numresults<=0:
+        print(elmts)
+    for elmt in elmts:
+        href=elmt.get_attribute('href')
+        txt=elmt.text
+    #    print(txt)
+    #    print(href)
+        if domain in href:
+            webdriver.ActionChains(driver).move_to_element(elmt).perform()
+            webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
+            print(domain)
+            print(href)
+            driver.quit()
+            return txt
+            break
+    return '{empty}'
+#    time.sleep(5)
+
+
+selenium_jared_click()