'<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
'''
..............
'''