吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7149|回复: 14
收起左侧

[Python 原创] 【Python】萌新跟来我入门Python爬虫(三)

  [复制链接]
wushaominkk 发表于 2018-7-27 17:18
本帖最后由 wushaominkk 于 2018-7-31 16:19 编辑

今天在网上找一些文档,找了好久发现该文档都是要收费的而且贵的离谱
QQ图片20180727162830.png
擦,一个文档要收我35块钱,太坑了,怎么能花这冤枉钱!
Python爬虫大法搞搞阵

QQ图片20180727163224.png
QQ图片20180727163238.png

这个网站的文档是支持预览的
F12看源码看了下,图片是动态加载的
Network-XH调试一下
我们试着往下拉,发现没拉一页会加载一个网址

QQ图片20180727164024.png

找到Query参数进行对比下发现除了img参数不同,其他都是一样的

QQ图片20180727164218.png

然后将网页的URL在浏览器里面看下返回的数据

{"NextPage":"7o@o7xcocmmzkvwcNzdFX2WomykI7aFAfYKNVMTPPJYwVKlX2vVZCVR8hIYT3DARQXg_hQDZfKg=","PageCount":50,"ErrorMsg":"","PageIndex":1,"PageWidth":792,"Width":792,"Height":1120

很清晰了吧,nextPage就是下一页的图片地址

我们再来看下源码是怎么获取图片地址的
QQ图片20180727165212.png

整理下逻辑我们要怎么写代码呢

1.由于是GET请求直接URL拼接打开网址下载
2.然后动态获取下一页的URL地址,继续访问下地址并下载

理清了逻辑,那么直接贴代码了:
[Python] 纯文本查看 复制代码
import os
import requests
#创建文件夹
def mkdir(path):
    folder = os.path.exists(path)

    if not folder:  # 判断是否存在文件夹如果不存在则创建为文件夹
        os.makedirs(path)  # makedirs 创建文件时如果路径不存在会创建这个路径
        print("创建新文件夹")

        print("创建成功")
    else:
        print("该文件夹已经存在")

host = 'https://view41.book118.com//img/?img='
url = 'https://view41.book118.com/pdf/GetNextPage'

pageNumber = 1
nextPageUrl = {}
thisPageUrl = '7o@o7xcocmmzkvwcNzdFX2WomykI7aFAfYKNVMTPPJYwVKlX2vVZCdL4Ws932iPT'
img_path = "D:/photo/book/"
mkdir(img_path)
for i in range(51):
    params = {
        'f': 'QzpcT2ZmaWNlV2ViMzY1XE9mZmljZVdlYlxjYWNoZVxQREZcMTE2MTIwNTExMjgyNzEzMzIwMjEwMTQ2NTlfODgwNjRcMzEyODExNi01ODQ0ZGVkYjE5NzdlLmRvYy50ZW1w',
        'img': thisPageUrl,
        'isMobile': 'false',
        'isNet': 'true',
        'readLimit': 't2lOjHovBX@TGrxHGTQHAg==',
        'furl': 'o4j9ZG7fK97PX9vZopx9OZEQwygFDDlsYeLf@VY1ztzuFpJRcU1Zd6761HH6tDx985563CmGkGRabmnThJuAJcF@F83GdTF5n4s3kivFThYdL9gWIQEAgQ=='
    }
    # 下载当前页放到D:/photo/book文件夹里面
    # title
    title = str(i + 1)
    web = requests.get(host + thisPageUrl)
    with open(img_path + title + ".png", "wb") as html:
        html.write(web.content)
    html.close()

    print('成功下载第%d页图片,链接%s' % (pageNumber, host + thisPageUrl))
    #动态获取下一页图片URL地址
    page = requests.get(url, params).json()
    nextPageUrl = page['NextPage']
    print(nextPageUrl)

    thisPageUrl = nextPageUrl
    pageNumber = pageNumber + 1














代码随便写的比较粗糙,有兴趣的朋友可以继续优化下
看下成果
QQ图片20180727165630.png

可能很多朋友说爬出来的是图片,如果要修改里面的文档怎么办呢?这就用到文字识别软件了!这里就不细说了!

【原创教程】爬百度文库文档内容
【Python】萌新跟来我入门Python爬虫(二)
【Python】萌新跟我来入门Python爬虫



免费评分

参与人数 6吾爱币 +8 热心值 +5 收起 理由
Linpapaa + 1 好像挂了
潇洒超人 + 1 牛逼 最近正在学爬虫 学习了
lin_xop + 1 + 1 热心回复!
Demon神秘 + 2 + 1 感谢发布原创作品,楼主下次出个爬取微博的教程就好了。
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
林麥蒙 + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

dyttdem 发表于 2018-7-27 18:32
散与聚 发表于 2018-7-27 18:07
新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/”

代码22行img_path = "D:/photo/book/"
 楼主| wushaominkk 发表于 2018-7-27 18:28
散与聚 发表于 2018-7-27 18:07
新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/”

这个是自定义的,图片保存的目录
zzzmj 发表于 2018-7-27 17:40
散与聚 发表于 2018-7-27 17:52
(三)终于更新了
散与聚 发表于 2018-7-27 18:07
新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/”

点评

这个是自定义的,图片保存的目录  详情 回复 发表于 2018-7-27 18:28
hezhe0010 发表于 2018-7-27 18:29
我是菜鸟,进入跟大佬们学习学习
13169456869 发表于 2018-7-27 18:44 来自手机
感谢分享
yumusb 发表于 2018-7-27 18:55
抓抓抓接口
林麥蒙 发表于 2018-7-27 19:11 来自手机
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表