6 javascript python web-scraping selenium-chromedriver selenium-webdriver
我的问题如下:
我正在训练以检索本网站上的信息https://www.cetelem.es/.
我想做几件事:
单击两个滑动按钮以更改信息.
更改滑动按钮后检索信息
设置一个条件,只在锡和tae改变时检索信息.
我在google colab上尝试使用以下代码:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--start-maximized')
webdriver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
url = "https://www.cetelem.es/"
webdriver.get(url)
webdriver.find_element_by_class_name("bar-slider importe").send_keys("20.000")
webdriver.find_element_by_class_name("bar-slider messes").send_keys("30")
webdriver.save_screenshot('sreenshot.png')
print(webdriver.find_element_by_tag_name('body').text)
Run Code Online (Sandbox Code Playgroud)
如果你有解决方案,你能解释我的错误吗?因为我是一个真正的初学者.
这可能并不理想,但您可以使用 +/- 按钮调整滑块,直到达到目标。这是顶部滑块的示例。您还应该将目标的边界限制为 4.000 \xe2\x82\xac 的下限和 60.000 \xe2\x82\xac 的上限。
\nfrom selenium import webdriver\nfrom selenium.webdriver.support.ui import WebDriverWait\nfrom selenium.webdriver.support import expected_conditions as EC\nchrome_options = webdriver.ChromeOptions()\n# chrome_options.add_argument(\'--headless\')\nchrome_options.add_argument(\'--no-sandbox\')\nchrome_options.add_argument(\'--disable-dev-shm-usage\')\nchrome_options.add_argument(\'--start-maximized\')\nwebdriver = webdriver.Chrome(\'chromedriver\',chrome_options=chrome_options)\nurl = "https://www.cetelem.es/"\n\nwebdriver.get(url)\ntargetSliderStep = 22.700\ntargetSliderStep = round(targetSliderStep * 2) / 2 # to ensure is units covered by clicking\nprint(\'target: \' + "{0:.3f}".format(targetSliderStep))\nactualSliderStep = float(webdriver.find_element_by_id(\'slider-step-value\').text.replace(\' \xe2\x82\xac\',\'\'))\n\nif actualSliderStep < targetSliderStep:\n while float(webdriver.find_element_by_id(\'slider-step-value\').text.replace(\' \xe2\x82\xac\',\'\')) < targetSliderStep:\n webdriver.find_element_by_css_selector("#slider-step .up-button").click()\nelif actualSliderStep > targetSliderStep:\n while float(webdriver.find_element_by_id(\'slider-step-value\').text.replace(\' \xe2\x82\xac\',\'\')) > targetSliderStep:\n webdriver.find_element_by_css_selector("#slider-step .down-button").click()\nprint(\'actual: \' + webdriver.find_element_by_id(\'slider-step-value\').text.replace(\' \xe2\x82\xac\',\'\'))\nRun Code Online (Sandbox Code Playgroud)\n回答您的其他问题:
\n其他滑块:
\n对其他滑块使用相同的逻辑(也许添加 12-96 的范围):
\ntargetTimeStep = 22.700\ntargetTimeStep = round(int(targetTimeStep)) # to ensure is units covered by clicking\nprint(\'target: \' + str(targetTimeStep))\nactualTimeStep = int(webdriver.find_element_by_id(\'slider-time-step-value\').text)\n\nif actualTimeStep < targetTimeStep:\n while int(webdriver.find_element_by_id(\'slider-time-step-value\').text) < targetTimeStep:\n webdriver.find_element_by_css_selector("#slider-time-step .up-button").click()\nelif actualTimeStep > targetTimeStep:\n while int(webdriver.find_element_by_id(\'slider-time-step-value\').text) > targetTimeStep:\n webdriver.find_element_by_css_selector("#slider-time-step .down-button").click()\nprint(\'actual: \' + webdriver.find_element_by_id(\'slider-time-step-value\').text)\nRun Code Online (Sandbox Code Playgroud)\n选择项目:
\n您可以通过单击左侧菜单栏,然后通过 href 属性值子字符串定位项目链接来获取所有较长的项目列表。
\nwebdriver.find_element_by_id(\'showLeft\').click()\nwebdriver.find_element_by_id(\'layout_6\').click()\nprojects = webdriver.find_elements_by_css_selector("[href*=\'prestamos/prestamo-\']")\nprint(len(projects))\nRun Code Online (Sandbox Code Playgroud)\nCSS 选择器:
\n我自始至终都使用 CSS 选择器,因为现代浏览器针对 CSS 进行了优化。
\n例如,以下内容:
\n#slider-step .up-button \nRun Code Online (Sandbox Code Playgroud)\n#是具有 id ( )的父元素,与具有类 ( )slider-step的一个/多个元素的后代组合。是一个id 选择器,一个类选择器,是一个后代组合器,即选择该类的子级,其父级具有该 id。.up-button#." "
您希望尽可能使用 id 选择器,然后使用类选择器作为更快的选择器。
\n例如,如果右键单击+按钮上的检查元素,对于顶部滑块,您将看到以下 HTML:
可以清楚地看到父类id和子类+。
如果你想练习 css 选择器,下面的链接很有趣,你可以在这里阅读选择器
\n| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |