在html中提取帧树中的文本

时间:2016-09-03 17:20:44

标签: python xpath web-scraping lxml python-3.5

我想在网站中抓取一个框架(https://www.harris.com/careers/jobs)。第一个列出的工作职位的位置的Xpath是

/html/body/center/table[2]/tbody/tr/td/form/table[3]/tbody/tr[3]/td/table/tbody/tr[3]/td[4]/span

我正在尝试使用Python中的lxml库提取span中的文本。我的代码目前如下

from lxml import html
import requests
page = requests.get('https://www.harris.com/careers/jobs')
tree = html.fromstring(page.content)

location = tree.xpath('/html/body/center/table[2]/tbody/tr/td/form/table[3]/tbody/tr[3]/td/table/tbody/tr[3]/td[4]/span/text()')

不幸的是命令

print(test)

产生以下

[]

我非常确定Xpath存在问题,并且可以对其进行改进以提取我需要的文本。

1 个答案:

答案 0 :(得分:0)

在这里,我将为此提供工作代码:

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

driver=webdriver.Chrome('./chromedriver.exe')
try:
    driver.get("https://www.harris.com/careers/jobs")
    driver.switch_to.frame("frmJobs");
    time.sleep(5)
    #s = driver.find_element_by_id("searchbuttonBtn__a")
    s = driver.find_element_by_xpath("//input[@class='submitbutton']")
    driver.execute_script("return arguments[0].scrollIntoView();",s)
    print s.get_attribute("value")
    s.send_keys("\n")
    time.sleep(10)
    for a in driver.find_elements_by_xpath("//td[@class='listheadingbackground']/table/tbody/tr/td[2]/span/a"):
        print a.get_attribute("href")
except Exception as e:
    print e
driver.quit()