Использование Python Как войти на защищенный сайт - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь зайти на этот сайт, используя селен и запросы в python. К сожалению, я не смог войти. не могли бы вы помочь. Пожалуйста, проверьте код Python.

 import requests
 from bs4 import BeautifulSoup as BS
 from selenium import webdriver
 from fake_useragent import UserAgent
 from selenium.webdriver.common.keys import Keys

 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}

 driver = webdriver.Chrome('chromedriver_win32\chromedriver')

 page2 = 'https://data.world/makeovermonday/2019w16'

 driver.get(page2)

 u = driver.find_element_by_css_selector('username')
 u.send_keys('********') # username
 p = driver.find_element_by_css_selector('Password')
 p.send_keys('*********') # password
 p.send_keys(Keys.RETURN)

 inputElement = driver.find_element_by_id("fileactions.files.download")
 inputElement.click()
 ##inputElement.find_elements("UnifiedExport__miLink___EXLKS").click()
 ##inputElement.send_keys(company)
 ##driver.find_elements_by_link_text("UnifiedExport__miLink___EXLKS")

Ответы [ 2 ]

3 голосов
/ 17 апреля 2019

Я являюсь одним из соучредителей data.world (сайт, о котором идет речь выше) - просто чтобы вы знали - у нас есть полный API и даже Python SDK, который будет либо загружать файлы, выполнять запросы и даже получить кадры данных из данных, размещенных на data.world. См. https://docs.data.world/, а также посетите наше открытое сообщество Slack для вопросов, подобных этому. Я бы не рекомендовал пытаться очистить наш сайт как рабочий процесс ... это технически противоречит нашим условиям обслуживания и, вероятно, будет довольно хрупким способом взаимодействия с нашим сайтом. API / SDK будет намного проще, чем кажется, что вы пытаетесь сделать! Если API / SDK не подойдут для вашего случая использования, я хотел бы услышать больше!

2 голосов
/ 17 апреля 2019

Используйте WebDriverWait и следующий код должен работать.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium import webdriver

driver=webdriver.Chrome("path of chrome driver")

driver.get("https://data.world/makeovermonday/2019w16")
element=WebDriverWait(driver,40).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'a.btn.btn-sm.navbar-btn span')))
element.click()

userelement=WebDriverWait(driver,40).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'input[placeholder="Username or email address"]')))

userelement.send_keys("abcd@gmail.com")

passelement=WebDriverWait(driver,40).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'input[placeholder="Password"]')))

passelement.send_keys("44555565")

passelement.submit()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...