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

【Python網(wǎng)絡爬蟲】三分鐘教會你使用SeleniumWire快速爬取數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了【Python網(wǎng)絡爬蟲】三分鐘教會你使用SeleniumWire快速爬取數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SeleniumWire快速爬取數(shù)據(jù)

一、安裝所需的庫

在終端使用pip進行安裝 pip install xxx

import tkinter
from seleniumwire import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

二、設置瀏覽器啟動選項

這里我使用的是Chrome,其中列舉了幾個常用的option,供大家學習使用

  1. option = webdriver.ChromeOptions():設置Chrome啟動選項
  2. option.add_argument(‘headless’):不打開瀏覽器進行數(shù)據(jù)爬取,因為沒有可視化過程,所以推薦整個流程開發(fā)完畢后,在使用此條代碼。
  3. option.add_experimental_option(“prefs”, {“profile.managed_default_content_settings.images”: 2}):如果網(wǎng)頁中的圖片對你沒有太大作用,可以不加載網(wǎng)頁圖片,以提高爬取速度。
  4. option.add_experimental_option(“detach”, True):防止程序執(zhí)行完瀏覽器自動關閉
  5. 配置瀏覽器路徑和驅動路徑(若使用已安裝的瀏覽器,則不需要配置,需要手動安裝chromedriver)
    option.binary_location = r’./chrome-win64/chrome.exe’
    driver_path = r"./chromedriver-win64/chromedriver.exe"
  6. driver = webdriver.Chrome(service=Service(driver_path), options=option):加載以上配置,若第5步未配置,則使用driver = webdriver.Chrome(options=option)即可
  7. driver.maximize_window():最大化瀏覽器
  8. driver.implicitly_wait(60):設置隱式等待時長為60s,以后在更新Selenium的三種等待方式
option = webdriver.ChromeOptions()
option.add_argument('headless')  # 不使用瀏覽器ui
option.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})  # 不加載網(wǎng)頁圖片
option.add_experimental_option("detach", True)  # 
option.binary_location = r'./chrome-win64/chrome.exe'
driver_path = r"./chromedriver-win64/chromedriver.exe"
driver = webdriver.Chrome(service=Service(driver_path), options=option)
driver.maximize_window()
driver.implicitly_wait(60)

三、使用賬號密碼登錄網(wǎng)址

如果爬取的網(wǎng)站需要登陸,可使用selenium.find_element進行登錄

# 登錄
driver.get("your url")  # 登錄的url
driver.find_element(by=By.ID, value='mobile').send_keys('your username')
driver.find_element(by=By.ID, value='passwd').send_keys('your password')
driver.find_element(by=By.ID, value='submitButton').click()

# 這里是你登錄之后的操作
'''your code '''

四、seleniumwire.requests爬取數(shù)據(jù)

  1. for request in driver.requests為固定寫法,其含義為:獲取Network中的所有請求的url,然后進行遍歷
    2.if request.method == ‘POST’ and request.url == ‘your url’:當遍歷的請求滿足你設置的條件,例如為POST請求和指定的url,執(zhí)行response。
    這里的url是你需要爬取的網(wǎng)址,在所有的請求中,你需要查看哪個請求是你需要的
    seleniumwire wait_for_request(),python,爬蟲,數(shù)據(jù)分析
    seleniumwire wait_for_request(),python,爬蟲,數(shù)據(jù)分析

3.data = request.response.body:通過request返回response請求的body
4.html一般會將網(wǎng)頁的數(shù)據(jù)進行壓縮以節(jié)省空間,如果為Gzip壓縮方式,可用以下固定的方式解壓縮,最終的htmls為字符串形式。
5.driver.requests.clear():將每次的請求關閉,以釋放資源。

# 使用seleniumwire.requests爬取數(shù)據(jù)
for request in driver.requests:
    if request.method == 'POST' and request.url == 'your url': 
        data = request.response.body
        buff = BytesIO(data)
        f = gzip.GzipFile(fileobj=buff)
        htmls = f.read().decode('utf-8')
        print('response data: ', htmls)
        driver.requests.clear()

五、數(shù)據(jù)清洗和保存

返回的response是頁面中的所有數(shù)據(jù),數(shù)據(jù)清洗可使用正則表達式,也可使用beautifulsoup,這兩種方法之后在進行匯總文章來源地址http://www.zghlxwxcb.cn/news/detail-832093.html

# 正則表達式清洗數(shù)據(jù)
data_code = re.findall(r'data_code\D+(\d+)', htmls)
pay_time = re.findall('"pay_time":"(.*?)"', htmls)
vehicle_id = re.findall('"vehicle_id":"(.*?)"', htmls)
pay_type = re.findall(r'pay_type\D+(\d+)', htmls)

# pandas保存數(shù)據(jù)到Excel中
data = {'數(shù)據(jù)編號': data_code, '時間': pay_time, '標識': vehicle_id, '類型': pay_type}
df = pd.DataFrame(data)
df.index += 1
df.to_excel('data.xlsx')

代碼匯總

import tkinter
from seleniumwire import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

# 配置chrome
option = webdriver.ChromeOptions()
option.add_argument('headless')
option.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
option.add_experimental_option("detach", True)
option.binary_location = r'./chrome-win64/chrome.exe'
driver_path = r"./chromedriver-win64/chromedriver.exe"
driver = webdriver.Chrome(service=Service(driver_path), options=option)
driver.maximize_window()
driver.implicitly_wait(60)

# 登錄
driver.get("your url")  # 登錄界面的url
driver.find_element(by=By.ID, value='mobile').send_keys('your username')
driver.find_element(by=By.ID, value='passwd').send_keys('your password')
driver.find_element(by=By.ID, value='submitButton').click()

# 這里是你登錄之后的操作,可使用find_element轉到需要爬取的數(shù)據(jù)界面
'''your code '''
 
 # 使用seleniumwire.requests爬取數(shù)據(jù)
for request in driver.requests:
    if request.method == 'POST' and request.url == 'your url': 
        data = request.response.body
        buff = BytesIO(data)
        f = gzip.GzipFile(fileobj=buff)
        htmls = f.read().decode('utf-8')
        print('response data: ', htmls)
        driver.requests.clear()
   
# 使用正則表達式對數(shù)據(jù)進行清洗 
data_code = re.findall(r'data_code\D+(\d+)', htmls)
pay_time = re.findall('"pay_time":"(.*?)"', htmls)
vehicle_id = re.findall('"vehicle_id":"(.*?)"', htmls)
pay_type = re.findall(r'pay_type\D+(\d+)', htmls)

# 將采集的數(shù)據(jù)保存到Excel中
data = {'數(shù)據(jù)編號': data_code, '時間': pay_time, '標識': vehicle_id, '類型': pay_type}
df = pd.DataFrame(data)
df.index += 1
df.to_excel('data.xlsx')
tkinter.messagebox.showinfo(title='提示', message='已采取完畢')

到了這里,關于【Python網(wǎng)絡爬蟲】三分鐘教會你使用SeleniumWire快速爬取數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【Selenium IDE錄制腳本】三分鐘教會你Selenium IDE的安裝及使用

    【Selenium IDE錄制腳本】三分鐘教會你Selenium IDE的安裝及使用

    目錄 1、安裝Selenium IDE 1.1、安裝Firefox瀏覽器 ?1.2、安裝selenium IDE 2、selenium的腳本錄制 ????????因為selenium的不同版本對Firefox的支持不同,所以我們安裝了Firefox之后,需要關閉他的自動更新 搜索: ?點擊進入: ?點擊后,會有一個路徑選擇的會話框,下載路徑: ?找到下

    2024年02月09日
    瀏覽(21)
  • 【滲透測試】漏洞掃描AWVS安裝使用教程,三分鐘手把手教會,非常簡單

    【滲透測試】漏洞掃描AWVS安裝使用教程,三分鐘手把手教會,非常簡單

    Acunetix Web Vulnerability Scanner(簡稱AWVS)是一個 自動化 的Web漏洞掃描工具,它可以掃描任何通過 Web瀏覽器訪問 和 遵循HITP/HTTPS 規(guī)則的Web站點。 AWVS原理是基于 漏洞匹配方法 ,通過 網(wǎng)絡爬蟲 測試你的網(wǎng)站安全,檢測流行安全 AWVS可以檢測什么漏洞,它有什么優(yōu)勢? AWVS可以通過

    2024年01月25日
    瀏覽(28)
  • Python爬蟲入門教程!手把手教會你爬取網(wǎng)頁數(shù)據(jù)

    Python爬蟲入門教程!手把手教會你爬取網(wǎng)頁數(shù)據(jù)

    其實在當今社會,網(wǎng)絡上充斥著大量有用的數(shù)據(jù),我們只需要耐心的觀察,再加上一些技術手段,就可以獲取到大量的有價值數(shù)據(jù)。這里的“技術手段”就是網(wǎng)絡爬蟲。今天就給大家分享一篇爬蟲基礎知識和入門教程: 爬蟲就是自動獲取網(wǎng)頁內(nèi)容的程序,例如搜索引擎,Go

    2023年04月26日
    瀏覽(169)
  • 五分鐘快速掌握Python中dict(字典)的詳細使用方法

    五分鐘快速掌握Python中dict(字典)的詳細使用方法

    目錄 概念: dict的定義格式: dict的使用方法: 定義空字典的兩種方法: dict.clear: ?copy: copy:淺拷貝 deepcopy:深拷貝 get: ?items: ?keys: ?popitem: ?setdefault: ?update: ?values: dict----dictionary ?字典: 根據(jù)去獲取內(nèi)容 不能重復 必須是不可變的數(shù)據(jù)類型

    2024年02月12日
    瀏覽(26)
  • 如何在網(wǎng)絡爬蟲中解決CAPTCHA?使用Python進行網(wǎng)絡爬蟲

    如何在網(wǎng)絡爬蟲中解決CAPTCHA?使用Python進行網(wǎng)絡爬蟲

    網(wǎng)絡爬蟲是從網(wǎng)站提取數(shù)據(jù)的重要方法。然而,在進行網(wǎng)絡爬蟲時,常常會遇到一個障礙,那就是CAPTCHA(全自動公共圖靈測試以區(qū)分計算機和人類)。本文將介紹在網(wǎng)絡爬蟲中解決CAPTCHA的最佳方法,并重點介紹CapSolver無縫集成。 網(wǎng)絡爬蟲中的CAPTCHA是指在從網(wǎng)站提取數(shù)據(jù)時遇

    2024年01月22日
    瀏覽(23)
  • Python 萌新 - 花10分鐘學爬蟲

    Python 萌新 - 花10分鐘學爬蟲

    前言 Python 新手入門很多時候都會寫個爬蟲練手,本教程使用 Scrapy 框架,幫你簡單快速實現(xiàn)爬蟲,并將數(shù)據(jù)保存至數(shù)據(jù)庫。在機器學習中數(shù)據(jù)挖掘也是十分重要的,我的數(shù)據(jù)科學老師曾經(jīng)說過,好算法不如好數(shù)據(jù)。 Python助學大禮包點擊免費獲取 安裝 Scrapy (系統(tǒng)默認安裝了

    2024年02月06日
    瀏覽(13)
  • Python網(wǎng)絡爬蟲使用教程

    Python網(wǎng)絡爬蟲使用教程

    (1)介紹:urllib 模塊是 Python 標準庫,用于抓取網(wǎng)絡上的 URL 資源。 注:現(xiàn)在用的更多的是第三方庫requests,requests 模塊比 urllib 模塊更簡潔。 (2)模塊: urllib.request:請求模塊,用于打開和讀取 URL; urllib.error:異常處理模塊,捕獲 urllib.error 拋出異常; urllib.parse:URL 解析,爬

    2024年02月08日
    瀏覽(26)
  • au怎么提取人聲?一分鐘教會你!

    au怎么提取人聲?一分鐘教會你!

    提取人聲技術可以幫助人們獲得更清晰、純凈的聲音,以滿足不同的需求,如音頻處理、字幕制作和學習外語等。那么如何利用AU提取人聲呢?下面介紹了三種相關的方法。 一、使用AU軟件 1 、打開AU軟件,按【ctrl+o】,選擇音頻文件進行導入。 2 、點擊【效果】,點擊【立體

    2024年02月06日
    瀏覽(29)
  • 一分鐘教會你ai繪畫怎么操作

    一分鐘教會你ai繪畫怎么操作

    嘿,朋友們!今天我想和大家聊一聊人工智能繪畫。你們有沒有聽說過這項技術?簡單來說,就是用計算機程序來創(chuàng)作藝術作品,比如繪畫、音樂等等。最近這種技術越來越受到人們的關注,也有很多網(wǎng)站和應用程序開始提供這種功能。但是,你們知道怎么使用這種技術嗎?

    2024年02月09日
    瀏覽(20)
  • 5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

    5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

    有時出現(xiàn)的線上bug在測試環(huán)境死活都不能復現(xiàn),靠review代碼猜測bug出現(xiàn)的原因,然后盲改代碼直接在線上測試明顯不靠譜。這時我們就需要在生產(chǎn)環(huán)境中debug代碼,快速找到bug的原因,然后將鍋丟出去。 生產(chǎn)環(huán)境的代碼一般都是關閉source map和經(jīng)過混淆的,那么如何進行debug代

    2024年01月19日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包