selenium獲取網(wǎng)頁(yè)對(duì)象(python selenium抓取網(wǎng)頁(yè)內(nèi)容)
Selenium是通過(guò)對(duì)瀏覽器的包裝來(lái)進(jìn)行頁(yè)面處理的,因此我們首先會(huì)創(chuàng)建一個(gè)與瀏覽器相關(guān)的WebDriver對(duì)象然后我們需要查找頁(yè)面元素就是通過(guò)findeElement的方法和XPath的方式來(lái)獲取頁(yè)面對(duì)象紅色部分代碼那么通常我們的一個(gè)點(diǎn)擊操;如果確定是有的話,可能是頁(yè)面加載比較慢還沒(méi)加載出來(lái),selenium默認(rèn)是不會(huì)等待對(duì)象出現(xiàn)的,需要在找對(duì)象前加一些等待時(shí)間另外如果頁(yè)面上有iframe的話需要先切換進(jìn)去才能找到里面的對(duì)象;先定位到,然后接上后面的get_property#39id或者name#39。
使用xpath=selectoption定位獲取到一個(gè)元素集合,然后再取這個(gè)集合的個(gè)數(shù)就是option的個(gè)數(shù);法2使用Selenium+chromedriver模擬瀏覽器行為獲取數(shù)據(jù)Selenium 相當(dāng)于是一個(gè)機(jī)器人可以模擬人類在瀏覽器上的一些行為,自動(dòng)處理瀏覽器上的一些行為,比如點(diǎn)擊,填充數(shù)據(jù),刪除cookie等 chromedriver 是一個(gè)驅(qū)動(dòng) Chro;1首先你要先獲取到這個(gè)超鏈接元素標(biāo)簽的屬性信息id,name,位置,或者超鏈接文本2然后根據(jù)屬性信息選擇合適的定位方法,超鏈接一般常用鏈接文本進(jìn)行定位使用瀏覽器對(duì)象調(diào)用find_element_by_link_text,定位返回元素 3;注意最新版本的selenium已經(jīng)取消了這種格式,取而代之的是你要先導(dǎo)入然后再知識(shí)點(diǎn)掌握 driver對(duì)象定位標(biāo)簽元素獲取標(biāo)簽對(duì)象的方法 代碼實(shí)現(xiàn),如下,獲取騰訊新聞首頁(yè)的新聞標(biāo)簽的內(nèi)容知識(shí)點(diǎn)掌握 元素對(duì)象的操作方法;這對(duì)selenium操作定位的元素而進(jìn)行自動(dòng)化來(lái)說(shuō)是致命傷所以,開始自己寫定位信息,這已經(jīng)是必須的了從而學(xué)習(xí)了xpth和css選擇器,掌握了更加有效,快速和穩(wěn)定地定位頁(yè)面上的元素定位的時(shí)候難免會(huì)碰到有iframe,這就得先切換。
如果跳轉(zhuǎn)是在當(dāng)前窗口跳轉(zhuǎn),直接通過(guò)driver的相關(guān)方法獲取就可以如果跳轉(zhuǎn)時(shí)打開了新窗口,需要先進(jìn)行窗口切換,然后再獲取內(nèi)容;這里有各種策略用于定位網(wǎng)頁(yè)中的元素locate elements,你可以選擇最適合的方案,Selenium提供了一下方法來(lái)定義一個(gè)頁(yè)面中的元素find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_。
當(dāng)你觸發(fā)了某個(gè)事件之后,頁(yè)面出現(xiàn)了彈窗提示,處理這個(gè)提示或者獲取提示信息方法 # 跟frame一樣的處理方式頁(yè)面前進(jìn)和后退 selenium 三大重要功能 三個(gè)可以同時(shí)使用 selenium的優(yōu)缺點(diǎn) #8226;網(wǎng)頁(yè)爬取不一定要用Selenium,Selenium是為了注入瀏覽器獲取點(diǎn)擊行為的調(diào)試工具,如果網(wǎng)頁(yè)無(wú)需人工交互就可以抓取,不建議你使用selenium要使用它,你需要安裝一個(gè)工具軟件,使用Chrome瀏覽器需要下載chromedriverexe到system32下;codingutf8 import sys,re,random,time,os import socket from socket import error as socket_error import threading import urllib2,cookielib from bs4 import BeautifulSoup from selenium import webdriver from selenium。
1獲取當(dāng)前網(wǎng)頁(yè)標(biāo)題String#160title=drivergetTitle2獲取當(dāng)前網(wǎng)頁(yè)的URLString url=drivergetCurrentUrl3獲取元素的文本值,比如鏈接,純文本等String text=driverfindElementBy locationgetText4;1可以通過(guò)瀏覽器的調(diào)試功能,例如Firefox按F12,點(diǎn)網(wǎng)絡(luò)標(biāo)簽,然后就可以看到網(wǎng)頁(yè)的所有數(shù)據(jù)信息,網(wǎng)頁(yè)通過(guò)AJAX異步加載的數(shù)據(jù)也可以得到2使用抓包類的工具,如SmartSniff,經(jīng)過(guò)分析也可以得到數(shù)據(jù)也可以得到數(shù)據(jù);這個(gè)應(yīng)該是系統(tǒng)內(nèi)部的彈窗,希望使用switch語(yǔ)句。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。