什么?你看百度文庫還在付費嫁赏?我用python實現(xiàn)了百度文庫免費其掂,簡直泰褲辣

前言

前幾天在找一些資料想用來參考一下,然后找是找到了橄教,結(jié)果需要vip才可以下載清寇!什么?要花錢护蝶?那不是大冤種了华烟?



對于這種非必要的內(nèi)容,作為白嫖黨主打的就是分幣不刷就是陪伴持灰,于是乎.........我直接用python直接實現(xiàn)了免費版盔夜,如果你能跟我一樣,那么. .簡直泰褲辣!N沽础返十!

具體實現(xiàn)如下,有兩個版本椭微,簡單版和難度版

1.我們先看看簡單版的代碼洞坑,具體代碼如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
@Time   :2023/7/8 16:04
@Author :美女
@DESC   :
'''


import requests
import os
from lxml import etree


# 創(chuàng)建目錄方法
def create_file(file_path):
    if not os.path.exists(file_path):
        os.makedirs(file_path)

url = 'https://wk.baidu.com/view/526297e64531b90d6c85ec3a87c24028905f8521'

resp = requests.get(url)

# print(resp.text)
text = resp.text

html = etree.HTML(text)

img_list = html.xpath('//div[@class="mod flow-ppt-mod"]/div/div/img')

# 計數(shù)
cnt = 1

# 文件保存路徑
file_path = './wendang/'
create_file(file_path)

# 獲取圖片
for i in img_list:
    try:
        img_url = i.xpath('./@src')[0]
    except:
        img_url = i.xpath('./@data-src')[0]

    # 文件名稱
    file_name = f'{file_path}page_{cnt}.jpg'
    print(file_name, img_url)
    # 下載保存圖片
    resp = requests.get(img_url)
    with open(file_name, 'wb') as f:
        f.write(resp.content)

    cnt += 1

只有區(qū)區(qū)50行代碼,拿到源碼后蝇率,切記要:在python環(huán)境下運行和pycharm工具

2.復雜難度版本迟杂,具體代碼如下:

import os.path
import time
from selenium import webdriver
import requests
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select

url = input('輸入想要下載的百度文庫地址:')  # 輸入自己需要爬取的PPT地址
# 第一部分:手機模式打開一個電腦瀏覽器
options = webdriver.ChromeOptions()                                    # 配置chrome啟動時屬性的類
mobile_emulation = {"deviceName": "iPhone 13"}                           # 手機模式打開瀏覽器,手機類型:iPhone 6
options.add_experimental_option("mobileEmulation", mobile_emulation)  # 將mobile_emulation 添加到options中本慕,這樣瀏覽器就是通過手機模式打開
web = webdriver.Chrome()# 路徑修改為自己電腦瀏覽器驅(qū)動路徑
web.get(url)
time.sleep(2)

# 第二部分:將所有隱藏的ppt圖片展示出來
def click_ele(click_xpath):
    # 單擊指定控件
    click_ele = web.find_elements(By.XPATH, click_xpath)
    if click_ele:
        click_ele[0].location_once_scrolled_into_view                               # 滾動到控件位置
        web.execute_script('arguments[0].click()', click_ele[0])                    # 單擊控件排拷,即使控件被遮擋,同樣可以單擊
# 點擊繼續(xù)閱讀
xpath_continue_read_button = "http://div[@class='foldpagewg-icon']"                      # 獲取繼續(xù)閱讀得到xpath
click_ele(xpath_continue_read_button)                                               # 調(diào)用click_ele()
xpath_next_content_button = "http://div[@class='btn-wrap']/div[@class='btn-cancel']"     # 獲取下一頁的xpath
click_ele(xpath_next_content_button)                                                # 調(diào)用click_ele()
click_count = 0
while True:
    # 如果到了最后一頁就跳出循環(huán)
    if web.find_elements(By.XPATH,
            "http://div[@class='pagerwg-loadSucc hide']") or web.find_elements(By.XPATH,
            "http://div[@class='pagerwg-button' and @style='display: none;']"):
        break
    # 點擊加載更多
    xpath_loading_more_button = "http://span[@class='pagerwg-arrow-lower']"
    click_ele(xpath_loading_more_button)
    click_count += 1
    print("第{}次點擊加載更多!".format(click_count))
    # 等待一秒锅尘,等瀏覽器加載
    time.sleep(2)
click_ele('//*[@id="wui-messagebox-cancel-1"]')
time.sleep(1)
# 圖片元素的定位及獲取
li_list = web.find_elements(By.NAME, 'retype-page')
img_url = []
for i in li_list:
    h2 = i.find_element(By.mro(), 'pic')
    time.sleep(3)
    h3 = h2.find_element(By.LINK_TEXT, 'img')
    time.sleep(1)
    img = h3.get_attribute('src')
    img_url.append(img)
# 創(chuàng)建文件夾進行保存
path = 'D://百度文庫PPT//爬蟲ppt圖片'     # 看自己心情监氢,將爬取的PPT圖片放在哪里,比如:D://百度文庫PPT//爬蟲ppt圖片
if not os.path.exists(path):        # 查找是否有存儲的文件夾藤违,沒有則創(chuàng)建一個
    os.makedirs(path)
# 解析圖片url,并保存到已創(chuàng)建的文件夾中
x = 1
for g in range(len(img_url)):
    r = requests.get(img_url[g])
    path = '*://*//*//爬蟲ppt圖片//%d.jpg' % x
    print('正在爬取' + img)
    with open(path, "wb") as f:
        f.write(r.content)
        time.sleep(2)
        f.close()
        print('爬取成功')
        x += 1

這一次代碼稍微多了20多行浪腐,拿到源碼python環(huán)境和pycharm工具缺一不可,而這一次還需要安裝Google插件纺弊,需要改谷歌環(huán)境變量牛欢。具體如何不會的小伙伴可以討論!O巍傍睹!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市犹菱,隨后出現(xiàn)的幾起案子拾稳,更是在濱河造成了極大的恐慌,老刑警劉巖腊脱,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件访得,死亡現(xiàn)場離奇詭異,居然都是意外死亡陕凹,警方通過查閱死者的電腦和手機悍抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杜耙,“玉大人搜骡,你說我怎么就攤上這事∮优” “怎么了记靡?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵谈竿,是天一觀的道長。 經(jīng)常有香客問我摸吠,道長空凸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任寸痢,我火速辦了婚禮呀洲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘轿腺。我一直安慰自己两嘴,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布族壳。 她就那樣靜靜地躺著,像睡著了一般趣些。 火紅的嫁衣襯著肌膚如雪仿荆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天坏平,我揣著相機與錄音拢操,去河邊找鬼。 笑死舶替,一個胖子當著我的面吹牛令境,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播顾瞪,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼舔庶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了陈醒?” 一聲冷哼從身側(cè)響起惕橙,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钉跷,沒想到半個月后弥鹦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡爷辙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年彬坏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膝晾。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡栓始,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玷犹,到底是詐尸還是另有隱情混滔,我是刑警寧澤洒疚,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站坯屿,受9級特大地震影響油湖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜领跛,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一乏德、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吠昭,春花似錦喊括、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒲肋,卻和暖如春蘑拯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兜粘。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工申窘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孔轴。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓剃法,卻偏偏與公主長得像,于是被迫代替她去往敵國和親路鹰。 傳聞我的和親對象是個殘疾皇子贷洲,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容