我尝试通过selenium(python)从GoogleTrend下载CSV数据。
之前,我尝试打印源页面并提取我想要的数据。 它工作了一段时间,但现在它不起作用。
我尝试点击下载按钮获取CSV文件但没有任何反应。 你对这个案子有什么想法吗?
我从firebug + firepath(firefox插件)获得了按钮路径。
的HTML /体/格[2] / DIV [2] / DIV / MD-含量/ DIV / DIV / DIV [1] /趋势-插件/ NG-包括/插件/ DIV / DIV / DIV /小窗口动作/ DIV /按钮[1]
我尝试使用chrome驱动程序和firefox驱动程序。
此代码;把1(单词)参数想要得到搜索趋势。
导入系统 进口时间
def run_text_extract(search_word):
try:
print(search_word)
driver = webdriver.Firefox('/home/noah/Desktop/Google_Trend_downloader/chromedriver/geckodriver')
# driver = webdriver.Chrome('/home/noah/Desktop/Google_Trend_downloader/chromedriver')
driver.get("https://trends.google.com/trends/explore?date=all&geo=TH&q="+search_word)
driver.find_element_by_xpath('html/body/div[2]/div[2]/div/md-content/div/div/div[1]/trends-widget/ng-include/widget/div/div/div/widget-actions/div/button[1]').click()
try:
driver.manage().deleteAllCookies()
clear_cache(driver)
except TimeoutException as ex:
isrunning = 0
print("Exception has been thrown. " + str(ex))
print("Timeout line is", line ,".")
driver.close()
except Exception:
print ("Here 5")
pass
time.sleep(2)
driver.close()
print("======== END_OF_FILE ===============")
except:
pass
如果名称 ==' 主要': run_text_extract(sys.argv中[1]) time.sleep(8) #run_text_extract()
答案 0 :(得分:1)
我已导航到您提供的链接。 如果您搜索任何术语,您可以看到下载csv按钮链接将出现在右侧。但是会有3个下载csv buttton链接与同一个类或css选择器存在。因此,您需要收集所有元素并循环遍历它,以便您可以单击特定元素。在您的情况下,我假设您要单击第一个元素。所以下面的代码应该工作。如果您想要单击第2个或第3个元素,请相应地更改索引。
def run_text_extract(search_word):
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
import time
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", 'C:\\Python27')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
driver = webdriver.Firefox(firefox_profile=profile,executable_path=r'C:\\Python27\\geckodriver.exe')
driver.get("https://trends.google.com/trends/explore?date=all&geo=TH&q="+ search_word)
time.sleep(7)
lst = driver.find_elements_by_css_selector(".widget-actions-item.export")
lst[0].click()
run_text_extract("selenium")