Я пользователь Windows 7, использую python 3.6.7 и chromedriver 83.3. Мне нравится автоматизировать работу с помощью python, и недавно я запустил веб-автоматизацию с помощью селена. и хромированная отвертка. Так что я новичок в этой области.
Я написал сценарий, который может загружать любое программное обеспечение из Интернета после (потратив часы на учебные пособия и чтение документации) после ввода поискового запроса. Вот мой сценарий:
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
import requests, bs4
query = input("Name for a windows software: ")
searchGoogle = "https://www.google.com/search?q="+"download "+str(query)+" for windows 7"
driver = webdriver.Chrome('chromedriver.exe')
links = []
website = requests.get(searchGoogle)
website_text = website.text
soup = bs4.BeautifulSoup(website_text,"lxml")
all_links = []
for link in soup.find_all("a"):
links.append(link.get("href"))
for link in links:
if "/url?q=" in link:
final = link.replace("/url?q=","")
final = final.split("&", 1)[0]
all_links.append(final)
for ss in all_links:
try:
driver.get(ss)
time.sleep(30)
download = driver.find_element_by_partial_link_text('Download')
download.click()
print(download.text)
quit()
except:
#print(download.href)
print("Not Found... Moving to next...")
continue
проблема в том, что иногда он нажимает на ссылки с надписью «Загрузить» и переходит на другую страницу с запросом «Начать загрузку».
Я знаю, что когда вы загружаете exe-файл, ссылка для загрузки содержит что-то вроде этого: https://something.com/something/<▪something.exe
Поэтому я хотел спросить, есть ли find_element_if_its_href_contains ('. Exe') Или: все, что нажимает только ссылку, содержащую .exe.
Я новичок в этом сообществе и прошу прощения, если вы найдете в моем вопросе что-то, что не соответствует ожиданиям StackOverflow. Задайте мне вопрос в комментариях, и я буду рад изменить свой вопрос так, как вы предлагаете.
Кстати, заранее спасибо!