用python解析网站

时间:2015-09-04 08:38:02

标签: python html parsing web-scraping

我想从此页面抓取信息:https://www.jobsbank.gov.sg/ICMSPortal/portlets/JobBankHandler/SearchDetail.do?id=JOB-2015-0321370

但是,我无法使用python解析它。由于我不熟悉html,我不确定是什么问题。它可能与我在html中看到的影子根有关吗?如果是这样,我该如何克服它?

url = 'https://www.jobsbank.gov.sg/ICMSPortal/portlets/JobBankHandler/SearchDetail.do?id=JOB-2015-0321370'
hdr = {'User-Agent':'Mozilla/5.0'}
while True:
    req = urllib2.Request(url,headers=hdr)
    try:
        page = urllib2.urlopen(req)
    except:
        print("Exception ConnectionError was caught, retrying requests...")
        time.sleep(5)
    else:
        break
content = page.read()
tree = html.fromstring(content)

jobTitle = tree.xpath('//div[@class="jobDes"]/h3/text()')

感谢。

1 个答案:

答案 0 :(得分:1)

您无法抓取所需的职位描述内容,因为正如您所建议的那样,它是<iframe>标记的一部分。 iframe的内容是在页面加载后使用JavaScript设置的,因此不会作为page = urllib2.urlopen(req)请求的一部分返回。要从iFrame中抓取内容,您需要使用浏览器自动化模块,例如Selenium http://docs.seleniumhq.org/docs/03_webdriver.jsp