How to click and download with python selenium
我尝试通过Selenium(python)从谷歌趋势下载csv数据。
在前面,我尝试打印源页面并提取以后需要的数据。它工作了一段时间,但现在不工作了。
我试着点击下载按钮获取csv文件,但什么也没发生。你对这个案子有什么想法吗?
我从Firebug+FirePath(火狐插件)获得了按钮路径。
HTML/BODY/DIV[2]/DIV[2]/DIV/MD content/DIV/DIV/DIV/DIV[1]/Trends widget/ng include/widget/DIV/DIV/DIV/widget actions/DIV/button[1]
我尝试使用Chrome驱动程序和Firefox驱动程序。
这段代码;放置1个(字)参数,以获得搜索趋势。
导入系统导入时间
来自Selenium导入WebDriver从Selenium.WebDriver.common.keys导入密钥来自selenium.webdriver.common.actionu chains导入actionschains从Selenium.webDriver.support.ui导入选择从Selenium.webDriver.support.ui导入webDriverWait来自selenium.webdriver.common.by import by来自selenium.webdriver.support导入预期的欧盟条件
def run_text_extract(搜索单词):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34try:
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如果name='main':运行文本提取(sys.argv[1])睡眠时间(8)#运行文本提取()。
我已导航到您提供的链接。如果您搜索任何术语,您可以看到下载csv按钮链接将出现在右侧。但是将有3个具有相同类或CSS选择器的下载csv-button链接存在。所以您需要收集所有元素并循环使用它,以便您可以单击特定的元素。在您的例子中,我假设您想单击第一个元素。所以下面的代码应该有效。如果希望第二个或第三个元素单击相应更改索引。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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") |