123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- from typing import NoReturn
- from selenium import webdriver
- import time
- import networkx as nx
- import dataset
- import pickle
- import codecs
- from selenium.webdriver.common import keys
- from selenium.webdriver.common.keys import Keys
- 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 sys
- import os
- import time
- import re
- import pandas as pd
- import df2sheet
- from browser_common import JBrowser
- import datetime
- import dataset
- db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
- def find_master_by_designer(masters,designer):
- for m in masters:
- if m['designer']==designer:
- return m
- def get_designer_statistics(designer_list):
- global db
- details=[]
- masters=[]
- table=db['customer_list']
- table_details=db['rank_details']
- table_summary=db['rank_summary']
- driver = webdriver.Remote(
- # command_executor='http://dev2.choozmo.com:34444/wd/hub',
- command_executor='http://127.0.0.1:4444/wd/hub',
- #command_executor='http://192.53.174.202:4444/wd/hub',
- #command_executor='http://dev2.choozmo.com:14444/wd/hub',
- desired_capabilities=DesiredCapabilities.CHROME)
- driver.set_window_size(1400,1000)
- for tup in designer_list:
- q=tup[0]
- vip=tup[1]
- googleurl='https://www.google.com/search?q='+q
- driver.get(googleurl)
- time.sleep(3)
- # elmts=driver.find_elements_by_xpath("//div[@class='g']//div[@class='yuRUbf']//a")
- elmts=driver.find_elements_by_xpath("//div[@class='TbwUpd NJjxre']/cite")
- # print(elmts)
- # time.sleep(9999)
- idx=1
- ranking=-1
- searchhome=-1
- hhh=-1
- com100=-1
- txt=None
- href=None
- for elmt in elmts:
- # href=elmt.get_attribute('href')
- elmt_titl3=elmt.find_element_by_xpath("../..//h3")
- elmt_href=elmt.find_element_by_xpath("../..")
- print(elmt_titl3.text)
- print(elmt_href.text)
- txt=elmt_titl3.text
- href=elmt_href.text
- print(idx)
- print(len(elmts))
- print(txt)
- print(href)
- # time.sleep(9999)
- # if len(txt)>2:
- if not ('google.com' in href):
- if '100.com' in href:
- com100=idx
- if 'searchome' in href:
- searchhome=idx
- if 'hhh.com.tw' in href:
- hhh=idx
- ranking=idx
- print("updsert")
- print({'name':q,'updated':datetime.datetime.now()})
- table.upsert({'name':q,'updated':datetime.datetime.now()},keys=['name'])
- m={'designer':q,'title':txt,'url':href,'hhh':hhh,'dt':datetime.datetime.now(),'searchome':searchhome,'c_100':com100,'vip':vip}
- masters.append(m)
- table_summary.insert(m)
- print(href)
- print(txt)
- # table.insert({'designer':q,'title':txt,'url':href,'ranking':idx})
- dtstr=datetime.datetime.now().strftime("%Y-%m/%d %H:%M:%S")
- d={'designer':q,'title':txt,'url':href,'ranking':idx}
- details.append(d)
- table_details.insert({'q':q,'dt':datetime.datetime.now(),'designer':d['designer'],'title':d['title'],'url':d['url'],'ranking':idx,'hhh':hhh,'searchome':searchhome,'c_100':com100})
- idx+=1
- # time.sleep(9999)
- if ranking==-1:
- ranking=idx
- print("updsert")
- print({'name':q,'updated':datetime.datetime.now()})
- table.upsert({'name':q,'updated':datetime.datetime.now()},keys=['name'])
- m={'designer':q,'title':txt,'url':href,'hhh':hhh,'dt':datetime.datetime.now(),'searchome':searchhome,'c_100':com100}
- masters.append(m)
- table_summary.insert(m)
- db.commit()
- time.sleep(3)
- # print(masters)
- # print(details)
- return {'masters':masters,'details':details}
- # 寓子設計
- #qlist=['元均制作']
- #qlist=['三宅一秀']
- #qlist=['采品室內設計']
- #qlist=['寓子設計']
- #qlist=['綵韻室內設計','春雨時尚空間','阿曼空間設計','雅典設計','境庭國際設計']
- #qlist=['豐聚室內裝修','張馨室內設計','尚藝室內裝修','富億空間設計','比沙列室內裝修']
- #qlist=['森境王俊宏設計','格綸設計','齊舍設計','采舍空間設計','大琚空間設計']
- #qlist=['將作空間','昱承室內裝修','YHS DESIGN','德本迪室內設計','東風室內設計']
- #qlist=['陶璽空間設計','惹雅國際設計','浩室設計','藝谷空間設計','IS國際設計']
- #qlist=['摩登雅舍室內','星葉室內裝修','浩室設計','演拓空間','千綵胤空間']
- #qlist=['京璽國際','元典設計','朱英凱室內設計','亞維空間設計','馥築時尚設計']
- #qlist=['文儀室內裝修','寓子設計','恆岳空間設計','卓林室內設計','歐德傢俱']
- #qlist=['大久空間設計','成綺空間設計','知域設計','尚展空間設計','演繹動線空間']
- #qlist=['苡希創意設計','玖柞設計','維耕設計','昱森室內設計','上築空間設計']
- #qlist=['HATCH合砌設計','至文室內裝修','上陽設計','禾禾設計','聯寬室內裝修']
- #設計
- #qlist=['三宅一秀','萬寶隆空間設計','含仰空間設計','元均制作','承炫裝修']
- qlist=[]
- cursor=db.query('select name,vip from customer_list order by updated asc limit 50')
- #cursor=db.query('select name,vip from customer_list where vip = 0 order by updated asc limit 20')
- #cursor=db.query('select name,vip from customer_list where vip = 1 order by updated asc limit 20')
- for c in cursor:
- qlist.append((c['name'],c['vip']))
- #get_designer_statistics([qlist[0]])
- get_designer_statistics(qlist)
- # if d['designer']==q:
- # df.loc[idx]=[d['designer'],d['title'],d['url'],d['ranking'],r['ranking'],dtstr]
- # idx+=1
- # df2sheet.save_sheet(df,'designer_ranking',q,startpos='A1')
|