Python selenium不检索html

Python selenium不检索html,python,html,selenium,iframe,Python,Html,Selenium,Iframe,我正在尝试从此网页检索所有字段: 然而,当我运行我的代码时,它甚至似乎没有检索HTML。我想知道是什么原因导致页面无法检索HTML(我使用PhantomJS.exe headless browser,但这不会有什么区别),这与iframe有什么关系吗?如果是这样,我如何使用硒来处理这个问题 我已经将selenium与phantomJS结合使用成功地从中刮取,但同样的方法似乎不适用于上述网站。请参考下面我的代码 import re import math import time import r

我正在尝试从此网页检索所有字段:

然而,当我运行我的代码时,它甚至似乎没有检索HTML。我想知道是什么原因导致页面无法检索HTML(我使用PhantomJS.exe headless browser,但这不会有什么区别),这与iframe有什么关系吗?如果是这样,我如何使用硒来处理这个问题

我已经将selenium与phantomJS结合使用成功地从中刮取,但同样的方法似乎不适用于上述网站。请参考下面我的代码

import re
import math
import time
import requests
from lxml import html
import selenium
from selenium import webdriver

def getPageEnd(url):
    payload = {
        "{actionForm.checkValidRequest}": "YES",
        "{actionForm.recordsPerPage}": "20",
        "{actionForm.sortBy}": "1",
        "{actionForm.searchType}": "Quick Search",
        "{actionForm.currentPageNumber}": "1"
    }
    r = requests.post(url, data=payload)
    tree = html.fromstring(r.text)

    page_list = tree.xpath('//div[@class="searchetails"]/p/'
                           'span[@style="color: #b41b84;"]/text()')
    page_list = re.findall('\d+', page_list[0])
    page_end = page_list[-1]
    page_end = int(page_end)/100.0
    page_end = math.ceil(page_end) #rounding up
    return int(page_end)


def jobScrape(url, pagenum):
    job_link_url_prepend = "__https://www.jobsbank.gov.sg"

    payload = {
        "{actionForm.checkValidRequest}": "YES",
        "{actionForm.recordsPerPage}": "20",
        "{actionForm.sortBy}": "1",
        "{actionForm.searchType}": "Quick Search",
        "{actionForm.currentPageNumber}": "%s" % pagenum,
    }
    while True:
        try:
            r = requests.post(url, data=payload)
        except requests.exceptions.ConnectionError as e:
            print("Exception ConnectionError was caught, retrying requests...")
            time.sleep(5)
        else:
            break

    tree = html.fromstring(r.text)
    cur_page_job_links = [job_link_url_prepend + i for i in 
                          tree.xpath('//td[@class="jobDesActive"]/a/@href')] 

    print("Done scraping page %s" % pagenum)

    return cur_page_job_links


def main():
    driver = webdriver.PhantomJS(executable_path=r'E:\desktop\phantomjs.exe')
    driver.set_window_size(1120, 550)
    url = "https://www.jobsbank.gov.sg/ICMSPortal/portlets/JobBankHandler/SearchResult3.do"
    page_start = 1
    page_end = getPageEnd(url)

    for pagenum in range(page_start, 2):
        cur_page_job_links = jobScrape(url, str(pagenum))

        with open("link.txt", 'a') as f:
            for link in cur_page_job_links:
                f.write("%s \n" % link)
    for link in cur_page_job_links:
        url = "__https://" + link
        driver.get(url)
        htmltext = driver.page_source
        print htmltext

if __name__ == "__main__":
    main()  

我想这可能与想要检索JobDescription框架有关,如何使用window.document.getElementById(“frameJobDescription”)等命令来获取所需内容?

您无法获取哪个元素?请发布一个.hi@JasonEstibeiro,例如,我无法获取职务描述框架,因为它位于Iframe中。@Vaulstein,我如何使用selenium检索Iframe?其他不属于iFrame的字段,如“过账日期”和“薪资”呢?实际上,我想检索该网页上的每一条数据。您可以找到一种检索Iframe内容的方法