国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬蟲(chóng)入門(mén):使用selenium庫(kù),webdriver庫(kù)模擬瀏覽器爬蟲(chóng),模擬用戶(hù)爬蟲(chóng),爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

這篇具有很好參考價(jià)值的文章主要介紹了Python爬蟲(chóng)入門(mén):使用selenium庫(kù),webdriver庫(kù)模擬瀏覽器爬蟲(chóng),模擬用戶(hù)爬蟲(chóng),爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

*嚴(yán)正聲明:本文僅限于技術(shù)討論與分享,嚴(yán)禁用于非法途徑。

目錄

準(zhǔn)備工具:

思路:

具體操作:

調(diào)用需要的庫(kù):

啟動(dòng)瀏覽器驅(qū)動(dòng):

代碼主體:

?完整代碼(解析注釋?zhuān)?/p>


準(zhǔn)備工具:

Python環(huán)境;

安裝selenium庫(kù);

Python編輯器;

待爬取的網(wǎng)站;

安裝好的瀏覽器;

與瀏覽器版本相對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)

思路:

使用Python打開(kāi)瀏覽器~~>>進(jìn)入待爬取的網(wǎng)站~~>>模擬用戶(hù)點(diǎn)擊文章~~>>跳轉(zhuǎn)至文章界面~~>>將文章界面數(shù)據(jù)保存下來(lái)~~>>關(guān)閉文章界面~~>>回到原網(wǎng)頁(yè)~~>>模擬用戶(hù)點(diǎn)擊下一個(gè)文章~~>>將第一頁(yè)全部爬取完畢~~>>模擬用戶(hù)點(diǎn)擊下一頁(yè)~~>>將所有爬取完畢關(guān)閉瀏覽器.

具體操作:

調(diào)用需要的庫(kù):

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
# 調(diào)用selenium庫(kù)通過(guò)驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的操作,像真正的用戶(hù)在操作一樣。
# webdriver調(diào)用驅(qū)動(dòng)
# By是selenium中內(nèi)置的一個(gè)class,在這個(gè)class中定位元素

啟動(dòng)瀏覽器驅(qū)動(dòng):

下載瀏覽器驅(qū)動(dòng):

chrome驅(qū)動(dòng)下載chromedriver.storage.googleapis.com/index.html

瀏覽器驅(qū)動(dòng)需要放在Python環(huán)境變量中

查看Python存放路徑

在命令行中輸入Python,進(jìn)入Python中

>>>?import?sys
>>>?sys.path

或者命令行輸入where python

Python爬蟲(chóng)入門(mén):使用selenium庫(kù),webdriver庫(kù)模擬瀏覽器爬蟲(chóng),模擬用戶(hù)爬蟲(chóng),爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

driver = webdriver.Chrome()  # 選擇自己需要的瀏覽器驅(qū)動(dòng)進(jìn)行調(diào)用,這里使用的是Chrome驅(qū)動(dòng)
url = ''  # 定義自己需要爬取的網(wǎng)站url
# headers = {"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"}
driver.get(url)  # 使用Python打開(kāi)的瀏覽器訪問(wèn)網(wǎng)站

代碼主體:

range(1,5)設(shè)置循環(huán)次數(shù)為四次

使用selenium隱式等待:

當(dāng)查找元素或元素并沒(méi)有立即出現(xiàn)的時(shí)候,隱式等待將等待一段時(shí)間再查找

find_elements屬于selenium中復(fù)數(shù)的定位元素內(nèi)容。find_elements主要定位定位頁(yè)面上多個(gè)相同的元素坐標(biāo)。

By.CSS_SELECTOR? 可以通過(guò)多個(gè)屬性(比如有多個(gè)class的)進(jìn)行定位

'.listContent'? 包括所有需要爬取的文章

for page in range(1,5):
    time.sleep(1)
    driver.implicitly_wait(8)
    lis = driver.find_elements(By.CSS_SELECTOR,'.listContent')

try做異常處理

try:
    ****
except Exception as e:
    print(e)

find_element定位方法和find_elements其實(shí)一樣的,只不過(guò)多了一個(gè)s相當(dāng)于定位多組

c = li.find_element(By.CLASS_NAME,'article_title')
driver.execute_script('arguments[0].click();',c)
# 模擬用戶(hù)進(jìn)行點(diǎn)擊,具體查找
# 如果直接使用
# li.find_element(By.CLASS_NAME,'article_title').click()
# 可能會(huì)出現(xiàn)查找不到點(diǎn)擊對(duì)象

由于每次點(diǎn)擊都會(huì)打開(kāi)新的標(biāo)簽頁(yè),所以需要定義一個(gè)初始頁(yè)

original_window = driver.current_window_handle

切換到新打開(kāi)的標(biāo)簽頁(yè)

driver.switch_to.window(driver.window_handles[-1])

保存完畢后切換到初始頁(yè)

driver.switch_to.window(original_window)

打開(kāi)文件文件路徑;

打開(kāi)文件,并設(shè)置讀寫(xiě)權(quán)限(w覆蓋并寫(xiě)入,b二進(jìn)制數(shù)據(jù));

write將數(shù)據(jù)寫(xiě)入文件,encode將數(shù)據(jù)進(jìn)行編碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-423402.html

get_html = "D:\Python文件\html\{}.html".format(b)
f = open(get_html,'w+b')
f.write(driver.page_source.encode())
    for li in lis:
        try:
            b = li.find_element(By.CLASS_NAME,'article_title span').text
            c = li.find_element(By.CLASS_NAME,'article_title')
            driver.execute_script('arguments[0].click();',c)
            original_window = driver.current_window_handle
            driver.switch_to.window(driver.window_handles[-1])
            time.sleep(1)
            
            get_html = "D:\Python文件\html\{}.html".format(b)
            f = open(get_html,'w+b')
            f.write(driver.page_source.encode())
            f.close()
            driver.close()
            driver.switch_to.window(original_window)
            time.sleep(1)
            
        except Exception as e:
            print(e)

?完整代碼(解析注釋?zhuān)?/h2>
# 調(diào)用selenium庫(kù)通過(guò)驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的操作,像真正的用戶(hù)在操作一樣。
# webdriver調(diào)用驅(qū)動(dòng)
from selenium import webdriver
import time
# By是selenium中內(nèi)置的一個(gè)class,在這個(gè)class中有各種方法來(lái)定位元素
from selenium.webdriver.common.by import By

# 將Chrome驅(qū)動(dòng)調(diào)用,也可以換成其他瀏覽器驅(qū)動(dòng)
driver = webdriver.Chrome()

# 將要爬取的網(wǎng)站url
url = ''

# 有些需要headers,有些則不用
# headers = {"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"}

# 使用Chrome驅(qū)動(dòng)訪問(wèn)URL
driver.get(url)

# 這里進(jìn)入循環(huán),因?yàn)榫W(wǎng)站只有五頁(yè),所以循環(huán)五次;range()中填寫(xiě)想要循環(huán)的次數(shù),從一次到n次
for page in range(1,5):
    
    # 剛進(jìn)入瀏覽器頁(yè)面需要睡一秒,網(wǎng)絡(luò)不穩(wěn)定可以多等幾秒
    time.sleep(1)
    # 進(jìn)入瀏覽器緩沖
    driver.implicitly_wait(8)
    # 定義一個(gè)函數(shù),查找全部需要爬取的內(nèi)容
    lis = driver.find_elements(By.CSS_SELECTOR,'.listContent')
    
    # 進(jìn)入循環(huán),循環(huán)爬取lis中的數(shù)據(jù)
    for li in lis:
        # 有時(shí)候會(huì)報(bào)錯(cuò),這里做了一個(gè)異常處理
        try:
            # 要將文件保存,定義name為爬取文章的名字,.text獲取文章鏈接中的文字
            name = li.find_element(By.CLASS_NAME,'article_title span').text
            # 模擬用戶(hù)點(diǎn)擊進(jìn)入文章
            c = li.find_element(By.CLASS_NAME,'article_title')
            # 有時(shí)候直接.click()會(huì)出現(xiàn)找不到數(shù)據(jù)的情況,這里具體指定一下
            driver.execute_script('arguments[0].click();',c)
            # 因?yàn)槊看吸c(diǎn)擊都會(huì)打開(kāi)新的標(biāo)簽頁(yè),這里定義首頁(yè)為原標(biāo)簽頁(yè)
            original_window = driver.current_window_handle
            # 爬取文章數(shù)據(jù)需要切換進(jìn)入新標(biāo)簽頁(yè)
            driver.switch_to.window(driver.window_handles[-1])
            # 等待一秒
            time.sleep(1)
            
            # 定義.html文件路徑,文件名為函數(shù)name
            get_html = "D:\Python文件\html\{}.html".format(name)
            # 打開(kāi)文件
            f = open(get_html,'w+b')
            # 將切換后的標(biāo)簽頁(yè)的數(shù)據(jù)寫(xiě)入文件
            f.write(driver.page_source.encode())
            # 關(guān)閉文件
            f.close()
            # 關(guān)閉切換的新標(biāo)簽頁(yè)
            driver.close()
            # 切換至原標(biāo)簽頁(yè)
            driver.switch_to.window(original_window)
            time.sleep(1)
        # 異常處理
        except Exception as e:
            print(e)
    # 模擬用戶(hù)點(diǎn)擊下一頁(yè),與上一個(gè)點(diǎn)擊事件原理一樣
    r = driver.find_element(By.CLASS_NAME,'btn-next')
    driver.execute_script('arguments[0].click();',r)
# 關(guān)閉瀏覽器
driver.quit()
    

到了這里,關(guān)于Python爬蟲(chóng)入門(mén):使用selenium庫(kù),webdriver庫(kù)模擬瀏覽器爬蟲(chóng),模擬用戶(hù)爬蟲(chóng),爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python 爬蟲(chóng)熱身篇 使用 requests 庫(kù)通過(guò) HTTP 讀取網(wǎng)絡(luò)數(shù)據(jù),使用 pandas 讀取網(wǎng)頁(yè)上的表格,使用 Selenium 模擬瀏覽器操作

    python 爬蟲(chóng)熱身篇 使用 requests 庫(kù)通過(guò) HTTP 讀取網(wǎng)絡(luò)數(shù)據(jù),使用 pandas 讀取網(wǎng)頁(yè)上的表格,使用 Selenium 模擬瀏覽器操作

    在過(guò)去,收集數(shù)據(jù)是一項(xiàng)繁瑣的工作,有時(shí)非常昂貴。機(jī)器學(xué)習(xí)項(xiàng)目不能沒(méi)有數(shù)據(jù)。幸運(yùn)的是,我們現(xiàn)在在網(wǎng)絡(luò)上有很多數(shù)據(jù)可供我們使用。我們可以從 Web 復(fù)制數(shù)據(jù)來(lái)創(chuàng)建數(shù)據(jù)集。我們可以手動(dòng)下載文件并將其保存到磁盤(pán)。但是,我們可以通過(guò)自動(dòng)化數(shù)據(jù)收集來(lái)更有效地做

    2023年04月08日
    瀏覽(98)
  • 【python爬蟲(chóng)】設(shè)計(jì)自己的爬蟲(chóng) 4. 封裝模擬瀏覽器 Selenium

    有些自動(dòng)化工具可以獲取瀏覽器當(dāng)前呈現(xiàn)的頁(yè)面的源代碼,可以通過(guò)這種方式來(lái)進(jìn)行爬取 一般常用的的有Selenium, playwright, pyppeteer,考慮到他們的使用有許多相同之處,因此考慮把他們封裝到一套api中 先看基類(lèi) Selenium是一個(gè)自動(dòng)化測(cè)試工具,利用它可以驅(qū)動(dòng)瀏覽器完成特定

    2024年02月03日
    瀏覽(90)
  • [爬蟲(chóng)]2.2.1 使用Selenium庫(kù)模擬瀏覽器操作

    [爬蟲(chóng)]2.2.1 使用Selenium庫(kù)模擬瀏覽器操作

    Selenium是一個(gè)非常強(qiáng)大的工具,用于自動(dòng)化Web瀏覽器的操作。它可以模擬真實(shí)用戶(hù)的行為,如點(diǎn)擊按鈕,填寫(xiě)表單,滾動(dòng)頁(yè)面等。由于Selenium可以直接與瀏覽器交互,所以它可以處理那些需要JavaScript運(yùn)行的動(dòng)態(tài)網(wǎng)頁(yè)。 首先,我們需要安裝Selenium庫(kù)。你可以使用pip命令來(lái)安裝:

    2024年02月16日
    瀏覽(96)
  • Python小姿勢(shì) - # Python網(wǎng)絡(luò)爬蟲(chóng)之如何通過(guò)selenium模擬瀏覽器登錄微博

    Python小姿勢(shì) - # Python網(wǎng)絡(luò)爬蟲(chóng)之如何通過(guò)selenium模擬瀏覽器登錄微博

    Python網(wǎng)絡(luò)爬蟲(chóng)之如何通過(guò)selenium模擬瀏覽器登錄微博 微博登錄接口很混亂,需要我們通過(guò)selenium來(lái)模擬瀏覽器登錄。 首先我們需要安裝selenium,通過(guò)pip安裝: ``` pip install selenium ``` 然后我們需要下載一個(gè)瀏覽器驅(qū)動(dòng),推薦使用Chrome,下載地址:http://chromedriver.storage.googleapis.c

    2024年02月03日
    瀏覽(94)
  • selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法

    selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法

    WebDriver簡(jiǎn)介 selenium從2.0開(kāi)始集成了webdriver的API,提供了更簡(jiǎn)單,更簡(jiǎn)潔的編程接口。selenium webdriver的目標(biāo)是提供一個(gè)設(shè)計(jì)良好的面向?qū)ο蟮腁PI,提供了更好的支持進(jìn)行web-app測(cè)試。從這篇博客開(kāi)始,將學(xué)習(xí)使用如何使用python調(diào)用webdriver框架對(duì)瀏覽器進(jìn)行一系列的操作 打開(kāi)瀏覽

    2024年01月25日
    瀏覽(28)
  • Python之selenium,使用webdriver模擬登錄網(wǎng)站(含驗(yàn)證碼)

    Python之selenium,使用webdriver模擬登錄網(wǎng)站(含驗(yàn)證碼)

    前段時(shí)間做了一個(gè)小項(xiàng)目,其中有一段需要自動(dòng)獲取網(wǎng)站后臺(tái)的數(shù)據(jù),但是這個(gè)網(wǎng)站沒(méi)有任何提供給開(kāi)發(fā)者的API,所以只能靠自己去探索。 起初想著用發(fā)送請(qǐng)求的方式去模擬登陸,獲取cookies,從而再獲取網(wǎng)站后臺(tái)數(shù)據(jù),但是因?yàn)樽约禾肆艘恍┰?,放棄了這個(gè)方法。 后來(lái)

    2024年02月02日
    瀏覽(22)
  • 瀏覽器自動(dòng)化腳本 Selenium WebDriver 快速入門(mén)

    瀏覽器自動(dòng)化腳本 Selenium WebDriver 快速入門(mén)

    2024軟件測(cè)試面試刷題,這個(gè)小程序(永久刷題),靠它快速找到工作了!(刷題APP的天花板)_軟件測(cè)試刷題小程序-CSDN博客 文章瀏覽閱讀2.7k次,點(diǎn)贊85次,收藏12次。你知不知道有這么一個(gè)軟件測(cè)試面試的刷題小程序。里面包含了面試常問(wèn)的軟件測(cè)試基礎(chǔ)題,web自動(dòng)化測(cè)試、

    2024年03月09日
    瀏覽(26)
  • 爬蟲(chóng)進(jìn)階之selenium模擬瀏覽器

    爬蟲(chóng)進(jìn)階之selenium模擬瀏覽器

    Selenium是一個(gè)用于自動(dòng)化瀏覽器操作的工具,通常用于Web應(yīng)用測(cè)試。然而,它也可以用作爬蟲(chóng),通過(guò)模擬用戶(hù)在瀏覽器中的操作來(lái)提取網(wǎng)頁(yè)數(shù)據(jù)。以下是有關(guān)Selenium爬蟲(chóng)的一些基本介紹: 瀏覽器自動(dòng)化: Selenium允許你通過(guò)編程方式控制瀏覽器的行為,包括打開(kāi)網(wǎng)頁(yè)、點(diǎn)擊按鈕

    2024年01月20日
    瀏覽(104)
  • python使用selenium控制瀏覽器進(jìn)行爬蟲(chóng)

    python使用selenium控制瀏覽器進(jìn)行爬蟲(chóng)

    這里以谷歌瀏覽器為例,需要安裝一下chromedriver,其他瀏覽器也有相對(duì)應(yīng)的driver,chromedriver下載地址:https://googlechromelabs.github.io/chrome-for-testing/ 然后是打開(kāi)python環(huán)境安裝一下依賴(lài) pip install selenium ,驗(yàn)證一下控制瀏覽器是否成功 點(diǎn)擊運(yùn)行腳本可以看到以下頁(yè)面就成功了。 爬蟲(chóng)

    2024年02月04日
    瀏覽(88)
  • Python使用Selenium模擬瀏覽器自動(dòng)操作功能

    Python使用Selenium模擬瀏覽器自動(dòng)操作功能

    概述 在進(jìn)行網(wǎng)站爬取數(shù)據(jù)的時(shí)候,會(huì)發(fā)現(xiàn)很多網(wǎng)站都進(jìn)行了反爬蟲(chóng)的處理,如JS加密,Ajax加密,反Debug等方法,通過(guò)請(qǐng)求獲取數(shù)據(jù)和頁(yè)面展示的內(nèi)容完全不同,這時(shí)候就用到Selenium技術(shù),來(lái)模擬瀏覽器的操作,然后獲取數(shù)據(jù)。本文以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述Python搭配Tkinter和

    2024年01月17日
    瀏覽(91)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包