本月我刚刚开始学习编码,并从Python开始。我想自动化一个简单的任务(我的第一个项目) - 访问公司的职业网站,检索当天发布的所有工作并将它们存储在一个文件中。所以这就是我想按顺序做的事情:
我环顾四周,发现Selenium是处理.aspx页面的最佳方式。
我已经使用Selenium完成了步骤1-4。但是,有两个问题:
任何帮助/指导将不胜感激......谢谢!
答案 0 :(得分:1)
首先说明你遇到的错误,我应该说根据表达式NoSuchElementException
和消息Unable to locate element
,你为网络驱动程序提供的选择器是错误的,网络驱动程序可以找不到元素。
好吧,既然你没有发布你的代码而且我无法打开你输入的网站的链接,我可以给你一个示例代码,我会尽可能详细地计算。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("url")
number_option = driver.find_element_by_id("id_for_25_option_indicator")
number_option.click()
date_option = driver.find_element_by_id("id_for_today_option_indicator")
date_option.click()
search_button = driver.find_element_by_id("id_for_search_button")
search_button.click()
all_results = driver.find_elements_by_xpath("some_xpath_that_is_common_between_all_job_results")
result_file = open("result_file.txt", "w")
for result in all_results:
result_file.write(result.text + "\n")
driver.close()
result_file.close()
既然你刚开始学习编码,我想我必须给出一些解释:
driver.find_element_by_id
。它更健壮。result.text
或result.get_attribute("value")
代替result.get_attribute("innerHTML")
。现在这一切都进入了我的脑海;但是如果你发布你的代码并且我们看到它有什么问题,那就更好了。另外,如果你给我一个新的网站链接会很棒,所以我可以在代码中添加更多细节;您当前的链接已损坏。
答案 1 :(得分:0)
关于第一个问题,您可以简单地使用无头浏览器。这可以通过Chrome和Firefox实现。 在这里查看Gray Li的答案,例如:Python - Firefox Headless
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.add_argument('headless')
driver = webdriver.Firefox(options=options)