我正在为客户开发一个项目,该项目包括管理公司目录,直到现在他有几个程序可以完成我的所有工作,我正处于用他以前管理的信息填充cms的阶段而且我需要从以前的程序中提取它,问题是程序的提供者没有授予客户端访问权限,这样我就可以获得信息(他们告诉他,他不付款,他可以无法获取信息),我尝试通过网络抓取来实现,但是在进行查询时,返回的信息始终相同,即程序的登录页面。
我的问题是:
这些是我要从列表或详细URL中提取信息的URL:
http://salamantica.com/cms/categories http://salamantica.com/cms/categories/view/1
这是我进行网页抓取时总是返回的那个:
http://salamantica.com/cms/login
我需要帮助,因为如果客户必须手动填写信息,他可能会死于尝试。
有什么想法吗?
谢谢。
解决了!!!
有效的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
option = webdriver.ChromeOptions()
option.add_argument(" - incognito")
browser = webdriver.Chrome(executable_path='/path', chrome_options=option)
browser.get('http://salamantica.com/cms/login')
timeout = 5
WebDriverWait(browser, timeout)
browser.find_element_by_id("UserUsername").send_keys("user")
browser.find_element_by_id("UserPassword").send_keys("password")
browser.find_element_by_css_selector('button[type="submit"]').click()
WebDriverWait(browser, timeout)
browser.get('http://salamantica.com/cms/categories/view/1')
WebDriverWait(browser, timeout)
information = browser.find_elements_by_class_name('controls')
[ print(content.text) for content in information ]
答案 0 :(得分:0)
Selenium可以输入用户名,密码,然后单击提交。
您要做的事情,我无能为力,因为我不知道页面的样子:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://salamantica.com/cms/login')
driver.find_element_by_id("UserUsername").send_keys("user1234")
driver.find_element_by_id("UserPassword").send_keys("password")
driver.find_element_by_css_selector('button[type="submit"]').click()