python - 爬行 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 并将其保存在文件中):
解决方案
首先,您不需要切换到 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个链接,如果你想要更多,你必须去其他页面做同样的事情
推荐阅读
- excel - 如何获取 excel vba 宏来导入标题中包含今天日期的文档?
- python - 仅当它们的值不是特定数据类型时才连接 3+ 列
- laravel - 无法与 Godaddy 上的主机 smtp.office365.com [网络无法访问 #101] 建立连接
- typescript - redux reducer 中的打字稿
- jquery - Angular 7+,如何正确包含和使用 jquery 依赖或 js ui-libraries(无类型)并加载/卸载它们
- javascript - 从表的第一列抓取数据并附加到jQuery中的最后一列
- javascript - 在另一个 forEach 方法中使用变量
- angular - Angular 7 事件绑定
- r - 如何创建一个函数以从数据框中提取列并使用 R 创建另一个?
- android - 有没有一种方法可以使用 MLKit 检测皮肤上的损伤