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