我想从以下页面抓取信息: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()')
谢谢。
最佳答案
您不能抓取所需的职位描述内容,因为正如您所建议的那样,它是<iframe>
标记的一部分。 iframe
的内容是在页面加载后立即使用JavaScript设置的,因此不会作为page = urllib2.urlopen(req)
请求的一部分返回。要从iFrame抓取内容,您将需要使用浏览器自动化模块,例如Selenium http://docs.seleniumhq.org/docs/03_webdriver.jsp
关于python - 用python解析网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32393663/