首页 > 解决方案 > 爬行 Selenium Python

问题描述

我尝试爬取这个crédit suisse页面(这对我来说是一个练习)。

所以我做了这个脚本,但我不知道如何获取数据。我认为这是一个 iframe 问题,但事实并非如此。然后我认为这是一个 AngularJS 网站,但我认为不是。

所以我的代码是:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("https://tas-creditsuisse.taleo.net/careersection/campus/moresearch.ftl?lang=fr-FR")

iframe = driver.find_element_by_xpath("//iframe[@id='ftlhiddenframe']")

thepage = driver.switch_to.frame(iframe)

webpage = ""
webpage = driver.page_source

webpage = "<body>"+webpage+"</body>"

import os
helloFile = open('C:\\Users\\Thie\\Desktop\\cs.html', 'w')
helloFile.write(webpage)
helloFile.close()

driver.close()

有人可以给我获取此网页的方法吗?非常感谢你的帮助。


解决方案是像下图一样制作 Firefox 检查器(选择 TBody 并将其保存在文件中):

在此处输入图像描述

标签: pythonhtmlseleniumdynamic

解决方案


首先,您不需要切换到 iframe。删除此代码:

iframe = driver.find_element_by_xpath("//iframe[@id='ftlhiddenframe']")
thepage = driver.switch_to.frame(iframe)

其次,如果我对您的理解正确,您希望获得页面上工作的所有链接。您可以使用此选择器:

//span[@class = 'titlelink']/a

在代码中它将是这样的:

listOfAllJobLinksOnThePage = driver.find_element_by_xpath("//span[@class = 'titlelink']/a")

PS记住,你只会得到25个链接,如果你想要更多,你必须去其他页面做同样的事情


推荐阅读