python中phantomjs获取不到页面信息的问题。

'<html><head></head><body></body></html>

我在爬取的时候,出现这样的情况。

原因是页面中包含iframe,iframe便签中带有src连接,只要进了这个链接,就能爬取到信息。

获取iframe标签的属性方式:

iframesrc = browser.find_element_by_xpath('//*/iframe').get_attribute("destsrc")
iframesrc = browser.find_element_by_xpath('//*/iframe')   当中的xpath各位可以自行修改,我的网页由于比较简单只有一个iframe,所以这样就够了

.get_attribute("destsrc") 是获取iframe标签中 名为:destsrc的属性,我这边是网页url

然后拼接url,进行访问,再次爬取就行了。

如果需要批量爬取多个网址,但不是每一个网址都有iframe,那就加个try except, 就行了

def getAllText(url,id_num):
'''
..............
'''
    try:
        iframesrc = browser.find_element_by_xpath('//*/iframe').get_attribute("destsrc")  # str      destsrc
    except Exception as e:
        iframesrc=None

    if iframesrc==None or iframesrc=='':
        # 该网址没有iframe 或者 已经到了iframe标签中
    else:
        url=setting.web_prefix+iframesrc
        getAllText(url,id_num)        # 调用自身    
        browser.quit()
        return
'''
..............
'''

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值