watch_yt.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import time
  2. import json
  3. from selenium import webdriver
  4. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  5. import time
  6. import redis
  7. import os
  8. import urllib.parse
  9. from selenium.webdriver.support.ui import WebDriverWait
  10. from selenium.webdriver.common.by import By
  11. from selenium.webdriver.support import expected_conditions as EC
  12. from selenium.webdriver.common.keys import Keys
  13. import codecs
  14. import random
  15. import requests
  16. import datetime
  17. import dataset
  18. import time
  19. import traceback
  20. import sys
  21. import fire
  22. from userAgentRandomizer import userAgents
  23. def init_browser(proxy1='proxy1',tiny1='tiny1',socks5="9050",debug='9922',cdriver=''):
  24. os.system('docker container restart '+proxy1)
  25. os.system('docker container restart '+tiny1)
  26. ua = userAgents()
  27. user_agent = ua.random()
  28. time.sleep(12)
  29. options = webdriver.ChromeOptions()
  30. options.add_argument('--headless')
  31. # options.add_argument('--proxy-server=socks5://127.0.0.1:'+socks5)
  32. options.add_argument('--disable-dev-shm-usage')
  33. options.add_argument('--no-sandbox')
  34. options.add_argument("--user-agent=" +user_agent)
  35. options.add_experimental_option("debuggerAddress", "127.0.0.1:"+debug)
  36. # options.add_experimental_option("debuggerAddress", "192.168.192.45:9922")
  37. # options.add_experimental_option("debuggerAddress", q[2])
  38. # options.add_argument("--user-agent=" +user_agent)
  39. options.add_argument("--incognito")
  40. # driver = webdriver.Chrome(executable_path=r'C:\portable\webdriver\chrome98\chromedriver.exe',options=options)
  41. driver = webdriver.Chrome(executable_path=cdriver,options=options)
  42. # driver = webdriver.Chrome(executable_path=epath,options=options)
  43. driver.delete_all_cookies()
  44. driver.set_window_size(1400,1000)
  45. return driver
  46. print(q)
  47. process_query(q)
  48. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
  49. yt_lst=[]
  50. #ace YAt1PdQTp4Q
  51. #choozmo 'YIftavPmHxo','K5DEJXajtqA'
  52. #cursor=['LmWkYVV7wtU','pIPs1n7PTMk','K5DEJXajtqA','YIftavPmHxo','UeZjaenjkx4','YAt1PdQTp4Q','pWx4Sb31JZU','80MN3fcbNKk','OLAzzz-V0p4']
  53. r = redis.Redis(host='db.ptt.cx', port=6379, db=2,password='choozmo9')
  54. data=r.get('watch_yt')
  55. jstext=data.decode('utf-8')
  56. jsobj=json.loads(jstext)
  57. #js=random.choice(jsobj)
  58. cursor=jsobj
  59. #cursor=['IsUte9FeL-0','7SsOUn3ufgw','YAt1PdQTp4Q','lnROUcxy6W0','Hf3uts9fO54','YIftavPmHxo','K5DEJXajtqA']
  60. #cursor=db.query('select * from sbir_yt')
  61. #for c in cursor:
  62. # yt_lst.append(c['url'])
  63. yt_lst=cursor
  64. class JParams(object):
  65. def get(self, yt,proxy1,tiny1,socks5,debug,cdriver):
  66. if 'SBIR' in yt:
  67. yt=random.choice(yt_lst)
  68. url='https://www.youtube.com/watch?v='+yt
  69. print(url)
  70. driver=init_browser(proxy1='proxy1',tiny1='tiny1',socks5="9050",debug='9922',cdriver='/root/webdriver/98/chromedriver')
  71. #driver.get('https://www.youtube.com/watch?v=K5DEJXajtqA')
  72. try:
  73. driver.get(url)
  74. except:
  75. driver.quit()
  76. sys.exit()
  77. return
  78. video = driver.find_element_by_id('movie_player')
  79. video.send_keys(Keys.SPACE) #hits space
  80. time.sleep(1)
  81. video.click() #mouse click
  82. driver.execute_script('window.open("'+url+'","_blank");')
  83. driver.execute_script("window.scrollTo(0, window.scrollY + 400)")
  84. time.sleep(3)
  85. try:
  86. driver.get(url)
  87. except:
  88. driver.quit()
  89. sys.exit()
  90. return
  91. time.sleep(35)
  92. driver.quit()
  93. sys.exit()
  94. if __name__ == '__main__':
  95. fire.Fire(JParams)