日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python获取动态数据采集仪代理_Python3爬虫技术文档(3)——动态页面数据采集,三,获取...

發(fā)布時(shí)間:2025/3/15 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python获取动态数据采集仪代理_Python3爬虫技术文档(3)——动态页面数据采集,三,获取... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上文說到,我們可以通過分析Ajax訪問服務(wù)器的方式來獲取Ajax數(shù)據(jù)。Ajax也算動(dòng)態(tài)渲染頁(yè)面的一種。所以,動(dòng)態(tài)頁(yè)面也是可以爬取滴。

Selenium

Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個(gè)工具的主要功能包括:測(cè)試與瀏覽器的兼容性——測(cè)試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測(cè)試系統(tǒng)功能——?jiǎng)?chuàng)建回歸測(cè)試檢驗(yàn)軟件功能和用戶需求。支持自動(dòng)錄制動(dòng)作和自動(dòng)生成 .Net、Java、Perl等不同語(yǔ)言的測(cè)試腳本。簡(jiǎn)而言之,Selenium可以模擬用戶操作瀏覽器,所以它也可以提取動(dòng)態(tài)頁(yè)面。

安裝Selenium

cmd下輸入:

pip install selenium

同時(shí)下載瀏覽器對(duì)應(yīng)版本的驅(qū)動(dòng)。

Chrome:

點(diǎn)擊下載

Firefox:

點(diǎn)擊下載

IE:

點(diǎn)擊下載

下載后解壓到python安裝目錄的scripts下。

Selenium基本使用方法

聲明瀏覽器對(duì)象

Selenium支持許多的瀏覽器,我們首先需要讓系統(tǒng)知道你使用的是什么瀏覽器,我們可以用以下方式初始化:

from selenium import webdriver

browser = webdriver.Chrome()

browser = webdriver.Firefox()

browser = webdriver.Edge()

browser = webdriver.PhantomJS()

browser = webdriver.Sarari()

之后我們就可以使用調(diào)用browser對(duì)象,執(zhí)行各種動(dòng)作來模擬瀏覽器操作

訪問頁(yè)面

我們用get()方法來請(qǐng)求網(wǎng)頁(yè),只需要傳入U(xiǎn)RL即可。這里我們?cè)L問百度頁(yè)面,并打印出源代碼:

from selenium import webdriver

browser = webdriver.Chrome()

browser.get(‘https://www.baidu.com’)

print(browser.page_source)

browser.close()

查找節(jié)點(diǎn)

單個(gè)節(jié)點(diǎn)

網(wǎng)頁(yè)構(gòu)成是一個(gè)個(gè)超文本標(biāo)記語(yǔ)言構(gòu)成的,這些就是網(wǎng)頁(yè)的節(jié)點(diǎn),我們想獲取某個(gè)信息就需要知道這個(gè)信息所在的地方在哪里。那么這里要通過查看網(wǎng)頁(yè)的源代碼。

比如這里我想提取這個(gè)圖片,通過查看源代碼知道它是在名字為logo的div里面的一個(gè)鏈接等等。那我們就可以通過以下方法獲取單個(gè)節(jié)點(diǎn):

find_element_by_id()

find_element_by_name()

find_element_by_xpath()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_tag_name()

find_element_by_class_name()

find_element_by_css_selector()

另外還有個(gè)通用方法:

find_element()

這個(gè)方法比上面的方法更為靈活,需要傳入兩個(gè)參數(shù),查找方式By和值:

from selenium import webdriver

from selenium webdriver.common.by import By

#...

input_first = browser.find_element(BY.ID, 'q')

#...

多個(gè)節(jié)點(diǎn)

多個(gè)節(jié)點(diǎn)我們需要find_elements()方法:

find_elements_by_id()

find_elements_by_name()

find_elements_by_xpath()

find_elements_by_link_text()

find_elements_by_partial_link_text()

find_elements_by_tag_name()

find_elements_by_class_name()

find_elements_by_css_selector()

也可以用

find_elements()

這里就不在詳細(xì)贅述。

節(jié)點(diǎn)交互

Selenium最重要的就是可以和瀏覽器進(jìn)行交互,其中常用的有:輸入文字的send_key()方法;清空文字的clear()方法;點(diǎn)擊按鈕的click()方法。示例如下:

#...

brower.find_elements_by_id('StudentId')[0].send_keys(StudentId) # 填入學(xué)號(hào)

brower.find_elements_by_id('Name')[0].send_keys(Password) # 填入密碼

brower.find_elements_by_id('codeInput')[0].send_keys(

brower.find_elements_by_id('code-box')[0].text) # 填入驗(yàn)證碼

brower.find_elements_by_id('Submit')[0].click() # 提交登錄表單

brower.find_elements_by_id('platfrom2')[0].click() # 選擇健康填報(bào)

brower.find_elements_by_id('ckCLS')[0].click()

try:

brower.find_element_by_class_name('save_form').click() # 提交

time.sleep(3)

brower.close() # 關(guān)閉瀏覽器

#...

其中更多的操作可以參見官方文檔的交互動(dòng)作介紹:

點(diǎn)擊鏈接

獲取節(jié)點(diǎn)信息

獲取屬性

get_attribute()

獲取文本值、id、位置、標(biāo)簽名和大小

from selenium import webdriver

browser = webdriver.Chrome()

url = 'https://www.zhihu.com/explore'

browser.get(url)

input = browser.find_element_by_class_name('zu-top-add-question')

print(input.id)

print(input.location)

print(input.tag_naem)

print(input.size)

Selenium最主要的操作就是這樣了,其他更多詳細(xì)信息請(qǐng)?jiān)L問以下頁(yè)面:

點(diǎn)擊鏈接

總結(jié)

以上是生活随笔為你收集整理的python获取动态数据采集仪代理_Python3爬虫技术文档(3)——动态页面数据采集,三,获取...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。