Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan)

Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan)

Go语言进阶学习
Go语言进阶学习ke hadapan
2023-07-25 14:25:041439semak imbas

1. Pengenalan latar belakang

Apabila bercakap tentang Bilibili, tanggapan pertama adalah video saya percaya bahawa ramai rakan, seperti saya, ingin menggunakan teknologi perangkak web untuk mendapatkan video Bilibili, tetapi video Bilibili. sebenarnya bukan senang nak dapat, off di stesen B untuk dapatkan video, telah diperkenalkan sebelum ini melalui perpustakaan you-get read, ini boleh dibaca kawan-kawan artikel :You-Get sangat kuat! .经 经

Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan)

🎜🎜 🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜, rakan-rakan yang sering menjumpai video-video ini bahasa, kursus, penggunaan alat, dsb. tutorial, siri pemilihan akan muncul, seperti yang ditunjukkan dalam rajah di bawah. 🎜🎜🎜🎜🎜

Sudah tentuini medan pilihanjuga boleh dilihat dengan mata kasar. Cuma jika anda melaksanakannya melalui program, ia mungkin tidak semudah yang anda sangka. Jadi matlamat artikel ini adalah untuk mendapatkan pilihan video melalui teknologi perangkak web Python dan berdasarkan perpustakaan selenium.


2. Pelaksanaan khusus

Perpustakaan yang kami gunakan dalam artikel ini adalah selenium, yang merupakan perpustakaan yang digunakan untuk mensimulasikan log masuk. masih digunakan agak banyak, dan ia telah dicuba dan diuji untuk mensimulasikan log masuk dan mendapatkan data. Di bawah adalah semua kod untuk melaksanakan koleksi pemilihan video Anda dialu-alukan untuk mempraktikkannya sendiri.

# coding: utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


class Item:
    page_num = ""
    part = ""
    duration = ""


    def __init__(self, page_num, part, duration):
        self.page_num = page_num
        self.part = part
        self.duration = duration


    def get_second(self):
        str_list = self.duration.split(":")
        sum = 0
        for i, item in enumerate(str_list):
            sum += pow(60, len(str_list) - i - 1) * int(item)


        return sum


def get_bilili_page_items(url):
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')  # 设置无界面
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    # options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2,
    #                                           "profile.managed_default_content_settings.flash": 0})


    browser = webdriver.Chrome(options=options)
    # browser = webdriver.PhantomJS()
    print("正在打开网页...")
    browser.get(url)


    print("等待网页响应...")
    # 需要等一下,直到页面加载完成
    wait = WebDriverWait(browser, 10)
    wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@class="list-box"]/li/a')))


    print("正在获取网页数据...")
    list = browser.find_elements_by_xpath('//*[@class="list-box"]/li')
    # print(list)
    itemList = []


    second_sum = 0


    # 2.循环遍历出每一条搜索结果的标题
    for t in list:
        # print("t text:",t.text)
        element = t.find_element_by_tag_name('a')
        # print("a text:",element.text)
        arr = element.text.split('\n')
        print(" ".join(arr))
        item = Item(arr[0], arr[1], arr[2])
        second_sum += item.get_second()
        itemList.append(item)


    print("总数量:", len(itemList))
    # browser.page_source


    print("总时长/分钟:", round(second_sum / 60, 2))
    print("总时长/小时:", round(second_sum / 3600.0, 2))


    browser.close()


    return itemList




get_bilili_page_items("https://www.bilibili.com/video/BV1Eb411u7Fw")

Pemilih yang digunakan di sini ialah xpath, dan contoh video ialah versi "Advanced Mathematics" Tongji bagi video pengajaran penuh (Teacher Song Hao) pilihan video dari Stesen B. Jika anda ingin merebut video lain Untuk pemilihan, anda hanya perlu menukar pautan URL di baris terakhir kod di atas.


三、常见问题

    在运行过程中小伙伴们应该会经常遇到这个问题,如下图所示。

Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan)

    这个是因为谷歌驱动版本问题导致的,只需要根据提示,去下载对应的驱动版本即可,驱动下载链接:

https://chromedriver.storage.googleapis.com/index.html

Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan)

Atas ialah kandungan terperinci Ajar anda langkah demi langkah cara menggunakan perangkak web Python untuk mendapatkan kandungan pemilihan video Bilibili (kod sumber dilampirkan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Go语言进阶学习. Jika ada pelanggaran, sila hubungi admin@php.cn Padam