Python爬蟲(chóng)實(shí)現(xiàn)selenium處理iframe作用域問(wèn)題
項(xiàng)目場(chǎng)景:
在使用selenium模塊進(jìn)行數(shù)據(jù)爬取時(shí),通常會(huì)遇到爬取iframe中的內(nèi)容。會(huì)因?yàn)槎ㄎ坏淖饔糜騿?wèn)題爬取不到數(shù)據(jù)。
問(wèn)題描述:
我們以菜鳥(niǎo)教程的運(yùn)行實(shí)例為案例。
按照正常的定位
會(huì)以文本塊生成xpath為/html/body/text()。這樣的話根據(jù)xpath進(jìn)行如下代碼編寫(xiě)。
#!/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?filename=HelloWorld&type=python3') time.sleep(2) text = driver.find_element_by_xpath('/html/body').text print(text) time.sleep(5) driver.quit()
執(zhí)行結(jié)果:
很明顯這并不是想要的結(jié)果。
原因分析:
當(dāng)我們打開(kāi)抓包工具定位到Hello, World!文本的時(shí)候會(huì)發(fā)現(xiàn),該文本是在一個(gè)iframe中。這樣的話我們xpath所定位到的內(nèi)容則是大的html中的路徑。我們需要的內(nèi)容則是在iframe中的小的html中。
解決方案:
通過(guò)分析發(fā)現(xiàn),想要解決問(wèn)題的實(shí)質(zhì)就是改變作用域。通過(guò)switch_to.frame(‘id')方法來(lái)改變作用域就可以了。
重新編寫(xiě)代碼:
#!/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?filename=HelloWorld&type=python3') time.sleep(2) driver.switch_to.frame('iframeResult') text = driver.find_element_by_xpath('/html/body').text print(text) time.sleep(5) driver.quit()
查看運(yùn)行結(jié)果:
到此這篇關(guān)于Python爬蟲(chóng)實(shí)現(xiàn)selenium處理iframe作用域問(wèn)題的文章就介紹到這了,更多相關(guān)selenium iframe作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python爬蟲(chóng)基于lxml解決數(shù)據(jù)編碼亂碼問(wèn)題
- 記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題
- python爬蟲(chóng)中采集中遇到的問(wèn)題整理
- 詳解Python爬蟲(chóng)爬取博客園問(wèn)題列表所有的問(wèn)題
- Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問(wèn)題
- 基于python分布式爬蟲(chóng)并解決假死的問(wèn)題
- 熱門(mén)問(wèn)題python爬蟲(chóng)的效率如何提高
- python爬蟲(chóng)抓取時(shí)常見(jiàn)的小問(wèn)題總結(jié)
相關(guān)文章
OpenCV-PS擴(kuò)散毛玻璃效果的實(shí)現(xiàn)代碼
PS的擴(kuò)散效果可以產(chǎn)生類似毛玻璃質(zhì)感的效果,使畫(huà)面有些毛毛的感覺(jué)。接下來(lái)通過(guò)本文給大家分享OpenCV-PS擴(kuò)散毛玻璃效果的實(shí)現(xiàn)代碼,一起看看吧2021-09-09pandas中DataFrame字典互轉(zhuǎn)的實(shí)現(xiàn)
在數(shù)據(jù)處理和分析中,Pandas是一個(gè)非常強(qiáng)大的Python庫(kù),本文主要介紹了pandas中DataFrame字典互轉(zhuǎn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04Pytorch實(shí)現(xiàn)LSTM和GRU示例
今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)LSTM和GRU示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python實(shí)現(xiàn)DBSCAN聚類算法并樣例測(cè)試
聚類是一種機(jī)器學(xué)習(xí)技術(shù),它涉及到數(shù)據(jù)點(diǎn)的分組,聚類是一種無(wú)監(jiān)督學(xué)習(xí)的方法,是許多領(lǐng)域中常用的統(tǒng)計(jì)數(shù)據(jù)分析技術(shù)。本文給大家分享Python實(shí)現(xiàn)DBSCAN聚類算法并樣例測(cè)試,感興趣的朋友一起看看吧2021-06-06python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand
本文主要介紹了python類參數(shù)定義及數(shù)據(jù)擴(kuò)展方式unsqueeze/expand,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08django-rest-swagger對(duì)API接口注釋的方法
今天小編就為大家分享一篇django-rest-swagger對(duì)API接口注釋的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python實(shí)現(xiàn)超簡(jiǎn)單端口轉(zhuǎn)發(fā)的方法
這篇文章主要介紹了python實(shí)現(xiàn)超簡(jiǎn)單端口轉(zhuǎn)發(fā)的方法,實(shí)例分析了Python同構(gòu)socket實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Django?+?Taro?前后端分離項(xiàng)目實(shí)現(xiàn)企業(yè)微信登錄功能
這篇文章主要介紹了Django?+?Taro?前后端分離項(xiàng)目實(shí)現(xiàn)企業(yè)微信登錄功能,本文記錄一下企業(yè)微信登錄的流程,結(jié)合示例代碼給大家分享實(shí)現(xiàn)思路,需要的朋友可以參考下2022-04-04