我想从以下页面抓取信息: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/

10-09 19:09
查看更多