| 
					
				 | 
			
			
				@@ -479,7 +479,7 @@ def serive_create_linux(profilepath): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return driver 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def find_lon_lat(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def find_lon_lat(driver): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     e = driver.find_element_by_css_selector("#scene > div.widget-scene > canvas") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     size = e.size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     total_height = size['height'] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -487,10 +487,11 @@ def find_lon_lat(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     size2 = driver.find_element_by_css_selector("#pane > div.Yr7JMd-pane").size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     left_width = size2['width'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    print(total_height, total_width, left_width) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     x = (total_width - left_width) / 2 + left_width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     y = total_height / 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    e = driver.find_element_by_css_selector("#pane > div.Yr7JMd-pane") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     action = webdriver.common.action_chains.ActionChains(driver) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     action.move_to_element_with_offset(e, x, y) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     action.context_click() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -503,14 +504,17 @@ def find_lon_lat(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return float(lat), float(lon) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def get_unique_id(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def get_unique_id(driver): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     element = driver.find_element(By.CSS_SELECTOR, "button[data-value='分享']") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     driver.implicitly_wait(5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ActionChains(driver).move_to_element(element).click(element).perform() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ele = driver.find_element(By.CSS_SELECTOR, "input") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    short_url = ele.get_attribute('value') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    unique_id = short_url.split('/')[-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    time.sleep(0.5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for i in range(3): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ele = driver.find_element(By.CSS_SELECTOR, "input") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        short_url = ele.get_attribute('value') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        unique_id = short_url.split('/')[-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if unique_id != '': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     element = driver.find_element(By.CSS_SELECTOR, "button[aria-label='關閉']") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     driver.implicitly_wait(5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ActionChains(driver).move_to_element(element).click(element).perform() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -548,11 +552,12 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if len(sys.argv) > 1 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         port=int(sys.argv[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         print('restart docker p{}'.format(port)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        os.system('sudo docker container restart pp'+str(port)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        os.system('sudo docker container restart p'+str(port)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         time.sleep(8) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for i in range(5): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         keyword = get_new_keyword(db2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        table2.insert({'kw':keyword,'num':0}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         url_pd = get_not_cralwer_url(keyword) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         print('drvier start {}...'.format(keyword)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         driver = brower_start(port) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -565,12 +570,12 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 name = row['name'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item_url = row['item_url'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 print(key, name, ': ' ,item_url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 print('start...') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 driver.get(item_url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 page_down_(driver, "//div[@class='x3AX1-LfntMc-header-title-ij8cu']", 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                lat, lon = find_lon_lat() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                unique_id = get_unique_id() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lat, lon = find_lon_lat(driver) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                unique_id = get_unique_id(driver) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 time_status = time_click(driver) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if time_status == 'error': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     error_table_col = ['name', 'lon', 'lat', 'keyword', 'item_url', 'crawler_date'] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -583,9 +588,9 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     'name': blank_check(shop_soup.find('h1', class_='x3AX1-LfntMc-header-title-title').text), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     'lon': lon, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     'lat': lat, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    'unique_id': unique_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    'unique_id': unique_id.replace('?share','') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                print(output['name'], lon, lat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                print(output['name'], lon, lat, unique_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 print('get_shop_info') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 output = get_shop_info(driver, output, shop_soup) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -628,8 +633,6 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 data_select_insert(db, 'error_list2', error_table_col, row) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 time.sleep(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        table2.insert({'kw':keyword,'num':key}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     main() 
			 |