123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #import redis
- import time
- import traceback
- #import json
- from selenium import webdriver
- from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
- import time
- import os
- 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
- from selenium.webdriver.common.keys import Keys
- import json
- import random
- import time
- import redis
- import sys
- import codecs
- import random
- import os
- import time
- import requests
- from time import sleep
- #from wrapt_timeout_decorator import *
- import pymysql
- pymysql.install_as_MySQLdb()
- driver=None
- # db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
- headers = {
- "Authorization": "Bearer " + "6SDULL1Ebklduc6TFxa97AFto5Sj21kyJ30CxiLiSoi",
- "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)
- #@timeout(20)
- def re_get_webdriver():
- global port
- global driver
- result=[]
- if driver is not None:
- print('closing....')
- driver.quit()
- os.system('killall chrome')
- print('quit....')
- driver=None
- try:
- options = webdriver.ChromeOptions()
- options.add_argument("--no-sandbox")
- options.add_argument("--disable-dev-shm-usage")
- # options.add_argument("--headless")
- # options.add_argument('--proxy-server='+proxy)
- # options.add_argument('--proxy-server=socks5://172.104.93.163:41800')
- # options.add_argument('--proxy-server=socks5://127.0.0.1:9050')
- # options.add_argument('--proxy-server=%s' % proxy)
- # print('--proxy-server=%s' % proxy)
- # options.add_experimental_option("debuggerAddress", '127.0.0.1:9922')
- # options.add_argument("--user-agent=" +user_agent)
- options.add_argument("--incognito")
- driver=None
- try:
- # driver = webdriver.Chrome(options=options)
- if os.name=='nt':
- driver = webdriver.Chrome(executable_path='C:/portable/webdriver/chrome102/chromedriver.exe',options=options)
- else:
- # driver = webdriver.Chrome(options=options)
- driver = webdriver.Chrome(options=options,executable_path='/Users/zooeytsai/Downloads/chromedriver 4')
- except:
- traceback.print_exc()
- driver.quit()
- sys.exit()
- return
- driver.set_window_size(1400,1000)
- return
- except:
- traceback.print_exc()
- driver=None
- return None
- def run_once(jsobj):
- # table=db['rank_detection']
- print(jsobj)
- global driver
- kw=jsobj['kw']
- i=100
- if driver is None:
- re_get_webdriver()
- if driver is None:
- return
- driver.get('https://news.google.com/topstories?hl=zh-TW&gl=TW&ceid=TW:zh-Hant')
- time.sleep(5)
- elmt = driver.find_element(By.XPATH, "//input[contains(@aria-label,'搜尋')]")
- print(elmt)
- time.sleep(1)
- elmt.send_keys(kw)
- elmt.send_keys(Keys.ENTER)
- time.sleep(7)
- elmts = driver.find_elements(By.XPATH, "//main//div[@class='xrnccd']//article/a[contains(@href,'./articles/')]")
- print(len(elmts))
- elmt=elmts[-1]
- print(elmt)
- webdriver.ActionChains(driver).move_to_element(elmt).perform()
- webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
- time.sleep(8)
- driver.quit()
- sys.exit()
- par1='tiny3'
- port='9942'
- os.system('killall chrome')
- #os.system('docker container restart proxy1')
- time.sleep(8)
- #os.system('curl --socks5 choozmo:choozmo9@172.104.93.163:41800 http://www.google.com')
- time.sleep(3)
- # r=random.randint(0,1)
- r=1
- if r==0:
- prefix="site:hhh.com.tw "
- domain=['hhh.com.tw']
- positive=['北歐 風格 定義','','房 間隔 局','小 房間 設計','裝潢 費用','室內 裝修','設計 公司','透 天 裝潢','鄉村 風 裝潢']
- elif r==1:
- prefix="site:gs-rack.com "
- domain=['gs-rack.com']
- positive=['神助','移動模組','移動貨架','無軌道','創新設計','專利移動櫃','重型架','物流設備','客戶實績','儲存方案','客戶服務','平台移動','重型電動','分離式','重型移動','冷庫重型移動','防爆倉','專利移動模組','輕中型移動貨架','傳統後推','少量多樣','大量少樣','重型貨品']
- elif r==2:
- prefix="基金 "
- postfix=' site:ltn.com.tw'
- domain=['ltn.com.tw']
- positive=['對沖基金','俄烏戰爭','美國升息']
- kw=random.choice(positive)
- run_once({'domain':domain,'kw':kw+prefix})
|