什么?你看百度文库还在付费?我用python实现了百度文库免费,简直泰裤辣

前言

前几天在找一些资料想用来参考一下,然后找是找到了,结果需要vip才可以下载!什么?要花钱?那不是大冤种了?



对于这种非必要的内容,作为白嫖党主打的就是分币不刷就是陪伴,于是乎.........我直接用python直接实现了免费版,如果你能跟我一样,那么. .简直泰裤辣!!!

具体实现如下,有两个版本,简单版和难度版

1.我们先看看简单版的代码,具体代码如下:

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


import requests
import os
from lxml import etree


# 创建目录方法
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')

# 计数
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

只有区区50行代码,拿到源码后,切记要:在python环境下运行和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()# 路径修改为自己电脑浏览器驱动路径
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])                    # 单击控件,即使控件被遮挡,同样可以单击
# 点击继续阅读
xpath_continue_read_button = "//div[@class='foldpagewg-icon']"                      # 获取继续阅读得到xpath
click_ele(xpath_continue_read_button)                                               # 调用click_ele()
xpath_next_content_button = "//div[@class='btn-wrap']/div[@class='btn-cancel']"     # 获取下一页的xpath
click_ele(xpath_next_content_button)                                                # 调用click_ele()
click_count = 0
while True:
    # 如果到了最后一页就跳出循环
    if web.find_elements(By.XPATH,
            "//div[@class='pagerwg-loadSucc hide']") or web.find_elements(By.XPATH,
            "//div[@class='pagerwg-button' and @style='display: none;']"):
        break
    # 点击加载更多
    xpath_loading_more_button = "//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)
# 创建文件夹进行保存
path = 'D://百度文库PPT//爬虫ppt图片'     # 看自己心情,将爬取的PPT图片放在哪里,比如:D://百度文库PPT//爬虫ppt图片
if not os.path.exists(path):        # 查找是否有存储的文件夹,没有则创建一个
    os.makedirs(path)
# 解析图片url,并保存到已创建的文件夹中
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环境和pycharm工具缺一不可,而这一次还需要安装Google插件,需要改谷歌环境变量。具体如何不会的小伙伴可以讨论!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容