Python爬蟲學習筆記(Selenium(1))

2021-10-02 19:19:03 字數 4329 閱讀 4909

1.基本使用、

fromseleniumimportwebdriver

from

selenium.webdriver.common.byimport

byfrom

selenium.webdriver.common.keysimport

keys

from

selenium.webdriver.supportimport

expected_conditionsas

ecfrom

selenium.webdriver.support.waitimport

webdriverwait

browser = webdriver.chrome() #對

chrome

瀏覽器物件的初始化並賦值

try

:browser.get('') #

模擬訪問

input = browser.find_element_by_id('kw') #

通過id

查詢kw

節點,即:搜尋框

input.send_keys('python'

)input.send_keys(keys.enter)

#傳入要搜尋的關鍵字

wait = webdriverwait(browser,10)

wait.until(ec.presence_of_element_located((by.id,'content_left'

)))print

(browser.current_url)

print

(browser.get_cookies())

print

(browser.page_source) #輸出

url頁面的訪問源**

finally

:browser.close()

2.單個節點和多個節點擊取:find_element()

_方法只能找到第乙個,要找到所有的節點用find_elements()_

用id找元素節點

input_sencond = browser.find_element_by_css_selector('#q') #

用css

選擇器找元素節點

input_third = browser.find_element_by_xpath('//*[@id="q"') #

用xpath

找元素節點

print

(input_first,input_sencond,input_third)

browser.close()

以上方法等價於:

fromseleniumimportwebdriver

from

selenium.webdriver.common.byimport

bybrowser = webdriver.chrome()

browser.get(''

)input_first = browser.find_element(by.id,'mq'

)print

(input_first)

browser.close()

獲取單個節點的基本方法:同理,

要找到所有的節點用find_elements()_,方法適用

3.節點互動

fromseleniumimportwebdriver

from

selenium.webdriver.common.byimport

byimport

time

browser = webdriver.chrome()

browser.get(''

)input_first = browser.find_element(by.id,'mq') #

獲取搜尋框

input_first.send_keys('iphone') #

填入iphone

time.sleep(1)

#間隔一秒後

input_first.clear()

#清空搜尋框

input_first.send_keys('ipad') #

再重新輸入

ipad

button = browser.find_element_by_css_selector('form') #

獲取開始搜尋按鈕

button.submit()

#開始搜尋

4.動作鏈

#實現拖拽效果fromseleniumimportwebdriver

from

selenium.webdriver.common.byimport

byimport

time

from

selenium.webdriverimport

actionchains

browser = webdriver.chrome()

url =''

browser.get(url)

browser.switch_to.frame('iframeresult')#

獲取拖拽例項頁面

source = browser.find_element_by_css_selector('#draggable') #

選中要拖拽 的節點

target = browser.find_element_by_css_selector('#droppable') #

選中拖拽到的目標節點

actions =actionchains(browser) #宣告

actionchains

物件並賦值

actions.drag_and_drop(source,target)

#呼叫動作方法 用於目標

actions.perform()

#執行動作

python爬蟲學習筆記

一 爬蟲思路 對於一般的文章而言,思路如下 1.通過主頁url獲取主頁原始碼,從主頁原始碼中獲得 標題 鏈結 如想要抓取知乎上的新聞,就獲得主頁上的新聞鏈結 2.繼續通過 標題 鏈結獲得 標題 原始碼,進而獲得 標題 中的內容。其中,當存在多頁時,先將每一頁都一樣的url寫下來,然後迴圈加入頁碼,具...

Python爬蟲學習筆記

1.使用build opener 修改報頭 headers user agent 定義變數headers儲存user agent資訊 opener urllib.request.build opener 建立opener物件並賦給變數 openeropener.addheaders headers ...

python爬蟲學習筆記

2.網頁資訊提取 beautiful soup庫 這是 學習北理的嵩山天老師mooc教程的筆記,是老師上課用的例項。import requests url try kv 將爬蟲偽裝成瀏覽器 r requests.get url,headers kv r.raise for status print ...