婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 教你快速上手Selenium爬蟲,萬物皆可爬

教你快速上手Selenium爬蟲,萬物皆可爬

熱門標(biāo)簽:外呼并發(fā)線路 湛江智能外呼系統(tǒng)廠家 百度地圖標(biāo)注沒有了 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 ai電話機(jī)器人哪里好 ai電銷機(jī)器人源碼 宿遷星美防封電銷卡 長沙高頻外呼系統(tǒng)原理是什么 地圖標(biāo)注審核表

一、基本使用

selenium 的基本使用步驟:

  • 打開瀏覽器;
  • 獲取瀏覽器頁面的特定內(nèi)容;
  • 控制瀏覽器頁面上的控件,如向一個文本框中輸入一個字符串;
  • 關(guān)閉瀏覽器。

示例:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
browser = webdriver.Chrome()
try:
    browser.get('https://www.jd.com')
    input_t = browser.find_element_by_id('key')
    input_t.send_keys('python爬蟲')
    input_t.send_keys(Keys.ENTER)  # 模擬按下Enter鍵位
    wait = WebDriverWait(browser, 4)  # 設(shè)置最長等待時間4秒
    wait.until(ec.presence_of_all_elements_located((By.ID, 'J_goodsList')))
    print(browser.title)  # 顯示搜索頁面的標(biāo)題
    print(browser.current_url)
    print(browser.page_source)
    browser.close()
except Exception as e:
    print(e)
    browser.close()

二、查找節(jié)點

2.1 查找單個節(jié)點

html 源碼如下:

!DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>表單/title>
/head>
body>
    script>
        function onclick_form(){
            alert(document.getElementById('name').value +
                document.getElementById('age').value +
                document.getElementsByName('country')[0].value+
                document.getElementsByClassName('myclass')[0].value)
        }

    /script>
    姓名:input id="name">p>/p>
    年齡:input id="age">p>/p>
    國家:input name="country">p>/p>
    收入:input class="myclass">p>/p>
    button onclick="onclick_form()">提交/button>
/body>
/html>

樣式如下圖所示:

python 代碼自動填充上圖中的表單:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 不支持本地網(wǎng)頁
browser = webdriver.Chrome()
try:
    # 這里我是用flask自己搭建的一個服務(wù) 訪問該頁面即可打開demo.html
    browser.get('http://127.0.0.1:5000/')
    input_t = browser.find_element_by_id('name')  # 通過id屬性查找姓名input節(jié)點
    input_t.send_keys('Amo')  # 自動輸入
    input_t = browser.find_element_by_id('age')
    input_t.send_keys('18')
    input_t = browser.find_element_by_name('country')  # 通過name屬性查找國家input節(jié)點
    input_t.send_keys('中國')
    # 通過class屬性查找收入input節(jié)點
    input_t = browser.find_element_by_class_name('myclass')
    input_t.send_keys('1850')
    # 或下面的代碼
    input_t = browser.find_element(By.CLASS_NAME, 'myclass')
    # 要想覆蓋前面的輸入,需要清空input節(jié)點,否則會在input節(jié)點原來的內(nèi)容后面追加新內(nèi)容
    input_t.clear()
    input_t.send_keys('3500')
except Exception as e:
    print(e)
    browser.close()

效果如下圖所示:

2.2 查找多個節(jié)點

示例代碼如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 不支持本地網(wǎng)頁
browser = webdriver.Chrome()
try:
    browser.get('https://www.jd.com')  # 打開京東
    # 根據(jù)節(jié)點名查找所有名為li的節(jié)點
    li_list = browser.find_elements_by_tag_name('li')
    # 輸出節(jié)點本身
    print(li_list)
    print(len(li_list))
    print(li_list[0].text)
    ul = browser.find_elements(By.TAG_NAME, 'ul')
    print(ul)
    print(ul[0].text)
    browser.close()
except Exception as e:
    print(e)
    browser.close()

三、節(jié)點交互

使用 selenium 通過模擬瀏覽器單擊動作循環(huán)單擊頁面上的6個按鈕,單擊每個按鈕后,按鈕下方的 div 就會按照按鈕的背景顏色設(shè)置 div 的背景色。

demo1.html 靜態(tài)頁面代碼如下:

!DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>彩色按鈕/title>
/head>
body>
    script>

        function onclick_color(e) {
            document.getElementById("bgcolor").style.background = e.style.background
        }
    /script>
  button class="mybutton" style="background: red" onclick="onclick_color(this)">按鈕1/button>
  button class="mybutton" style="background: blue" onclick="onclick_color(this)">按鈕2/button>
  button class="mybutton" style="background: yellow" onclick="onclick_color(this)">按鈕3/button>
  br>
  button class="mybutton" style="background: green" onclick="onclick_color(this)">按鈕4/button>
  button class="mybutton" style="background: blueviolet" onclick="onclick_color(this)">按鈕5/button>
  button class="mybutton" style="background: gold" onclick="onclick_color(this)">按鈕6/button>
  p>/p>
  div id="bgcolor" style="width: 200px; height: 200px">
  /div>
/body>
/html>

然后使用 Python 代碼模擬瀏覽器的單擊動作自動單擊頁面上的 6 個按鈕。P

ython 代碼如下所示:

from selenium import webdriver
import time

browser = webdriver.Chrome()
try:
    browser.get('http://127.0.0.1:5000/')
    buttons = browser.find_elements_by_class_name('mybutton')
    i = 0
    while True:
        buttons[i].click()
        time.sleep(1)
        i += 1
        if i == len(buttons):
            i = 0
except Exception as e:
    print(e)
    browser.close()

四、動作鏈

使用 selenium 動作鏈的 move_to_element 方法模擬鼠標(biāo)移動的動作,自動顯示京東商城首頁左側(cè)的每個二級導(dǎo)航菜單。

示例代碼如下:

from selenium import webdriver
from selenium.webdriver import ActionChains
import time

browser = webdriver.Chrome()
try:
    browser.get('https://www.jd.com')
    actions = ActionChains(browser)
    li_list = browser.find_elements_by_css_selector(".cate_menu_item")
    for li in li_list:
        actions.move_to_element(li).perform()
        time.sleep(1)
except Exception as e:
    print(e)
    browser.close()

使用 selenium 動作鏈的 drag_and_drop 方法將一個節(jié)點拖動到另外一個節(jié)點上。

示例代碼如下:

from selenium import webdriver
from selenium.webdriver import ActionChains

browser = webdriver.Chrome()
try:
    browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
    browser.switch_to.frame('iframeResult')
    source = browser.find_element_by_css_selector('#draggable')
    target = browser.find_element_by_css_selector('#droppable')
    actions = ActionChains(browser)
    actions.drag_and_drop(source, target)
    actions.perform()
except Exception as e:
    print(e)
    browser.close()

五、執(zhí)行 JavaScript 代碼

使用 selenium 的 execute_script 方法讓京東商城首頁滾動到最低端,然后彈出一個對話框。示

例代碼如下:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.jd.com')
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_async_script('alert("已經(jīng)到達(dá)頁面底端")')

六、獲取節(jié)點信息

使用 selenium 的 API 獲取京東商城首頁 HTML 代碼中 id 為 navitems-group1 的 ul 節(jié)點的相關(guān)信息以及 ul 節(jié)點中 li 子節(jié)點的相關(guān)信息。

示例代碼如下:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('headless')

browser = webdriver.Chrome(chrome_options=options)
# browser = webdriver.PhantomJS('./webdriver/phantomjs')
browser.get('https://www.jd.com')
ul = browser.find_element_by_id("navitems-group1")
print(ul.text)
print('id', '=', ul.id)  # 內(nèi)部id,不是節(jié)點id屬性值
print('location', '=', ul.location)

print('tag_name', '=', ul.tag_name)
print('size', '=', ul.size)
li_list = ul.find_elements_by_tag_name("li")
for li in li_list:
    print(type(li))
    # 屬性沒找到,返回None
    print('', li.text, '>', 'class=', li.get_attribute('class'))
    a = li.find_element_by_tag_name('a')
    print('href', '=', a.get_attribute('href'))
browser.close()

執(zhí)行結(jié)果如下:

秒殺
優(yōu)惠券
PLUS會員
品牌閃購
id = 6bb622fb-df60-4619-a373-b55e44dc27af
location = {'x': 203, 'y': 131}
tag_name = ul
size = {'height': 40, 'width': 294}
class 'selenium.webdriver.remote.webelement.WebElement'>
秒殺 > class= fore1
href = https://miaosha.jd.com/
class 'selenium.webdriver.remote.webelement.WebElement'>
優(yōu)惠券 > class= fore2
href = https://a.jd.com/
class 'selenium.webdriver.remote.webelement.WebElement'>
PLUS會員 > class= fore3
href = https://plus.jd.com/index?flow_system=appiconflow_entrance=appicon11flow_channel=pc
class 'selenium.webdriver.remote.webelement.WebElement'>
品牌閃購 > class= fore4
href = https://red.jd.com/

七、管理 Cookies

使用 selenium API 獲取 cookie 列表,并添加新的 cookie,以及刪除所有的 cookie。

示例代碼如下:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.jd.com')
print(browser.get_cookies())
browser.add_cookie({'name': 'name',
                    'value': 'jd', 'domain': 'www.jd.com'})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())  # 大部分刪除了,可能還剩下一些

八、改變節(jié)點屬性的值

通過 javascript 代碼改變百度搜索按鈕的位置,讓這個按鈕在多個位置之間移動,時間間隔是2秒。

示例代碼如下:

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
search_button = driver.find_element_by_id("su")  # 百度搜索按鈕
# arguments[0]對應(yīng)的是第一個參數(shù),可以理解為python里的%s傳參,與之類似
x_positions = [50, 90, 130, 170]
y_positions = [100, 120, 160, 90]
for i in range(len(x_positions)):
    js = '''
     arguments[0].style.position = "absolute";
     arguments[0].style.left="{}px";
     arguments[0].style.top="{}px";
    '''.format(x_positions[i], y_positions[i])
    driver.execute_script(js, search_button)
    time.sleep(2)

使用 javascript 代碼修改京東商城首頁頂端的前兩個導(dǎo)航菜單的文本和鏈接,分別改成 ‘3天極速掌握 Scala 語言:First Day' 和 ‘?dāng)?shù)據(jù)倉庫 Hive 從入門到小牛(一)',導(dǎo)航鏈接也會發(fā)生改變。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.jd.com")
ul = driver.find_element_by_id('navitems-group1')
li_list = ul.find_elements_by_tag_name('li')
a1 = li_list[0].find_element_by_tag_name('a')
a2 = li_list[1].find_element_by_tag_name('a')
js = '''
 arguments[0].text = '3天極速掌握 Scala 語言:First Day'
 arguments[0].
 arguments[1].text = '數(shù)據(jù)倉庫 Hive 從入門到小牛(一)'
 arguments[1].
 '''
driver.execute_script(js, a1, a2)

效果如下圖所示:

到此這篇關(guān)于教你快速上手Selenium爬蟲,萬物皆可爬的文章就介紹到這了,更多相關(guān)Selenium爬蟲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實現(xiàn)selenium網(wǎng)絡(luò)爬蟲的方法小結(jié)
  • python利用selenium進(jìn)行瀏覽器爬蟲
  • python 爬蟲之selenium可視化爬蟲的實現(xiàn)
  • Python3爬蟲中Selenium的用法詳解
  • 利用selenium爬蟲抓取數(shù)據(jù)的基礎(chǔ)教程

標(biāo)簽:普洱 海南 漯河 大同 盤錦 寧夏 南平 林芝

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《教你快速上手Selenium爬蟲,萬物皆可爬》,本文關(guān)鍵詞  教你,快速,上手,Selenium,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《教你快速上手Selenium爬蟲,萬物皆可爬》相關(guān)的同類信息!
  • 本頁收集關(guān)于教你快速上手Selenium爬蟲,萬物皆可爬的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产伦理精品不卡| www.av精品| 日韩手机在线导航| 在线一区二区三区做爰视频网站| 蜜臀av一区二区| 亚洲成人第一页| 亚洲va欧美va人人爽午夜| 亚洲欧美日韩在线不卡| 最新国产の精品合集bt伙计| 久久精品免费在线观看| 精品国产乱码久久久久久浪潮| 日韩亚洲欧美中文三级| 精品国产成人在线影院 | 欧美日韩高清影院| 国产一区二区不卡在线 | 中文字幕国产一区| 国产日韩高清在线| 国产视频一区在线播放| 亚洲美女屁股眼交| 日本成人超碰在线观看| 久久99精品久久久久久动态图| 捆绑调教一区二区三区| 91在线国产观看| 欧美日韩一级视频| 欧美激情一区二区| 日韩高清在线电影| 国产suv精品一区二区883| 91福利精品第一导航| 欧美精品一区二区精品网| 综合在线观看色| 高清日韩电视剧大全免费| 日韩一区二区在线看| 中文字幕一区二区视频| 国产中文字幕精品| 欧美丰满高潮xxxx喷水动漫| 国产精品久久久久久户外露出 | 偷偷要91色婷婷| 国产成人av电影在线| 7777精品久久久大香线蕉| 国产精品第一页第二页第三页| 日韩中文字幕av电影| 色综合视频一区二区三区高清| 91麻豆精品91久久久久同性| 国产精品剧情在线亚洲| 亚洲免费电影在线| 日韩毛片在线免费观看| 懂色av一区二区三区免费观看 | 亚洲欧洲国产日韩| 国产老女人精品毛片久久| 久久久91精品国产一区二区三区| 日韩精品91亚洲二区在线观看| 欧美午夜精品理论片a级按摩| 有码一区二区三区| 色综合久久中文综合久久牛| 亚洲人成伊人成综合网小说| 欧美写真视频网站| 日本不卡123| 欧美激情综合网| 日本高清视频一区二区| 青草av.久久免费一区| 日韩欧美国产一区二区三区 | 日韩精品一区在线观看| 精品亚洲成av人在线观看| 日本一区二区成人在线| 欧美另类久久久品| 国产一区二区三区国产| 亚洲免费观看高清完整版在线 | 亚洲欧美一区二区在线观看| 97久久精品人人爽人人爽蜜臀| 亚洲精品视频观看| 久久精品水蜜桃av综合天堂| 欧美三级乱人伦电影| 成人福利视频网站| 日本欧美大码aⅴ在线播放| 精品乱码亚洲一区二区不卡| 亚洲一区二区五区| 久久久久青草大香线综合精品| 成人99免费视频| 国产精品一区二区在线播放 | 中文字幕欧美一| 91精品久久久久久久91蜜桃| 精品亚洲成a人| 偷窥少妇高潮呻吟av久久免费| 国产精品免费av| 亚洲欧美在线观看| 欧美激情一区二区三区全黄 | 国产亚洲一本大道中文在线| 51久久夜色精品国产麻豆| 在线观看国产一区二区| 91视视频在线直接观看在线看网页在线看| 日韩国产欧美在线观看| 日韩国产高清影视| 午夜精品福利视频网站| 午夜精品免费在线观看| 日韩av网站在线观看| 粉嫩av一区二区三区在线播放| 欧美激情一区二区三区全黄| 国产亚洲欧美在线| 一区二区三区中文字幕电影| 丝袜国产日韩另类美女| 国产美女在线精品| 成人高清在线视频| 欧美一区二区三区啪啪| 国产精品久久福利| 天天爽夜夜爽夜夜爽精品视频| 天天爽夜夜爽夜夜爽精品视频| 美美哒免费高清在线观看视频一区二区 | 欧美精品在线一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美日韩一本到| 国产精品丝袜91| 老司机精品视频导航| 97se亚洲国产综合自在线不卡| 在线电影国产精品| 一区二区三区在线视频免费| 国产综合色在线视频区| 欧美一a一片一级一片| 久久久99精品免费观看| 老司机免费视频一区二区三区| 色综合天天综合给合国产| 精品电影一区二区三区| 天天色 色综合| 欧美日精品一区视频| 欧美一激情一区二区三区| 亚洲人成网站影音先锋播放| 美女网站一区二区| 欧美情侣在线播放| 亚洲综合精品自拍| 欧美日韩黄色影视| 亚洲少妇中出一区| 色噜噜夜夜夜综合网| 欧美成人vr18sexvr| 国产精品中文欧美| 国产欧美视频一区二区| 国产成人免费视频 | 91丨国产丨九色丨pron| 久久女同性恋中文字幕| 日韩专区在线视频| 欧美成人高清电影在线| 奇米色一区二区三区四区| 91精品国产91久久综合桃花| 国产精品乱人伦一区二区| 国产精品主播直播| 国产无人区一区二区三区| 久久er99精品| 日韩欧美国产1| 国产精品国产a级| 97se亚洲国产综合在线| 欧美高清一级片在线观看| 波波电影院一区二区三区| 最新热久久免费视频| 欧美成人精精品一区二区频| 精彩视频一区二区| 国产精品色一区二区三区| 欧美色图12p| 极品美女销魂一区二区三区 | 一区二区三区在线视频免费| 一本久道中文字幕精品亚洲嫩 | 日韩av一级电影| 国产精品水嫩水嫩| 日韩一区二区三区观看| 狠狠色狠狠色合久久伊人| 亚洲女爱视频在线| 亚洲人成网站精品片在线观看| 精品99一区二区三区| 欧美在线影院一区二区| 久久精品国产精品亚洲综合| 青青青爽久久午夜综合久久午夜| 久久影视一区二区| 日韩视频一区二区三区| 欧美精品一区二| 亚洲私人黄色宅男| 国产精品久久精品日日| 26uuu另类欧美亚洲曰本| 久久久综合视频| 久久婷婷国产综合精品青草| 国产女主播一区| 亚洲一二三四在线观看| 视频精品一区二区| 久久9热精品视频| www.激情成人| 精品入口麻豆88视频| 国产欧美日韩在线| 亚洲午夜av在线| 国产精品456| 91精品黄色片免费大全| 蜜臀av在线播放一区二区三区| 亚洲v精品v日韩v欧美v专区| 国产伦精一区二区三区| 欧美日韩在线综合| 国产三区在线成人av| 三级影片在线观看欧美日韩一区二区 | 欧美色倩网站大全免费| 国产日韩欧美一区二区三区综合| 一区二区三区四区激情| 国内精品嫩模私拍在线| 成年人午夜久久久| 久久影院电视剧免费观看| 天使萌一区二区三区免费观看| 99久久99久久免费精品蜜臀|