Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save witchfindertr/a13c213fdcb232a48aea4f969e02bc78 to your computer and use it in GitHub Desktop.

Select an option

Save witchfindertr/a13c213fdcb232a48aea4f969e02bc78 to your computer and use it in GitHub Desktop.
pytrends
import time, json
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from parsel import Selector
from bs4 import BeautifulSoup
import pandas as pd
GEO = "US"
search_term= "AMC"
search_term2= "stock"
HL="en"
URL=f"https://trends.google.com/trends/explore?q={search_term}%20{search_term2}&date=now%201-d&geo={GEO}&hl={HL}"
# graph is in units of 8 minute increments
timeframe=60 # set to 8 hrs
def Google_Trend_Data(url,timeframe):
service = Service(ChromeDriverManager().install())
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--lang=en")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36")
userdatadir = 'C:/Users/jonat/AppData/Local/Google/Chrome/User Data'
options.add_argument(f"--user-data-dir={userdatadir}")
driver = webdriver.Chrome(service=service,options=options)
driver.get(url)
WebDriverWait(driver, 10000).until(EC.visibility_of_element_located((By.TAG_NAME, 'body')))
time.sleep(5)
selector = driver.page_source
soup=BeautifulSoup(selector,'html.parser')
columns=[]
df=pd.DataFrame(columns=columns)
table=soup.select('td')
odd_i = []
even_i = []
for i in range(0, len(table)):
if i % 2:
even_i.append(table[i])
else :
odd_i.append(table[i])
date_table=odd_i
value_table=even_i
date_table=date_table[::-1]
int_value_table=[]
for item in value_table:
item=str(item)
item=item.replace("<td>","")
item=item.replace("</td>","")
item=int(item)
int_value_table.append(item)
int_value_table.reverse()
df['Date']=date_table[0:timeframe]
df['Interest over Time']=int_value_table[0:timeframe]
mean=df['Interest over Time'].mean()
print(df.to_string())
print(mean)
driver.quit()
return df,mean
if __name__ == "__main__":
frame, result = Google_Trend_Data(URL,timeframe)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment