项目场景:
在使用selenium模块进行数据爬取时,通常会遇到爬取iframe中的内容。会因为定位的作用域问题爬取不到数据。
问题描述:
我们以菜鸟教程的运行实例为案例。
按照正常的定位
会以文本块生成xpath为/html/body/text()。这样的话根据xpath进行如下代码编写。
#!/user/bin/ # -*- coding:UTF-8 -*- # Author:Master from selenium import webdriver import time driver = webdriver.Chrome(executable_path="./chromedriver") driver.get('https://www.runoob.com/try/runcode.php"text-align: center">
很明显这并不是想要的结果。
原因分析:
当我们打开抓包工具定位到Hello, World!文本的时候会发现,该文本是在一个iframe中。这样的话我们xpath所定位到的内容则是大的html中的路径。我们需要的内容则是在iframe中的小的html中。
解决方案:
通过分析发现,想要解决问题的实质就是改变作用域。通过switch_to.frame(‘id')方法来改变作用域就可以了。
重新编写代码:
最新资源
- 《林子祥 最爱40周年》[FLAC/分轨][1.7GB]
- Beyond《Beyond 精选专辑》[FLAC/分轨][2.8GB]
- 许巍《许巍精选专辑》[FLAC/分轨][1.9GB]
- 群星.2024-繁花电视剧原声带3CD【环球】【WAV+C
- 江希文.1994-伝说少女(饿狼伝说动画原声大碟)【
- 洪荣宏.2010-上爱的人【华特】【WAV+CUE】
- 《大牌国语情歌 经典再现 深情对唱 2CD》[WAV/分
- 《陈百强粉红色的一生精选 3CD》[FLAC/分轨][1.
- 《丁当 20首重量级歌曲 Fu Good 下一站天后 2CD
- 歌莉雅.2012-My.Voice.Story【环星】【FLAC分轨