好友
阅读权限100
听众
最后登录1970-1-1
|
本帖最后由 wushaominkk 于 2018-7-31 16:19 编辑
今天在网上找一些文档,找了好久发现该文档都是要收费的而且贵的离谱
擦,一个文档要收我35块钱,太坑了,怎么能花这冤枉钱!
Python爬虫大法搞搞阵
这个网站的文档是支持预览的
F12看源码看了下,图片是动态加载的
Network-XH调试一下
我们试着往下拉,发现没拉一页会加载一个网址
找到Query参数进行对比下发现除了img参数不同,其他都是一样的
然后将网页的URL在浏览器里面看下返回的数据
{"NextPage":"7o@o7xcocmmzkvwcNzdFX2WomykI7aFAfYKNVMTPPJYwVKlX2vVZCVR8hIYT3DARQXg_hQDZfKg=","PageCount":50,"ErrorMsg":"","PageIndex":1,"PageWidth":792,"Width":792,"Height":1120
很清晰了吧,nextPage就是下一页的图片地址
我们再来看下源码是怎么获取图片地址的
整理下逻辑我们要怎么写代码呢
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
代码随便写的比较粗糙,有兴趣的朋友可以继续优化下
看下成果
可能很多朋友说爬出来的是图片,如果要修改里面的文档怎么办呢?这就用到文字识别软件了!这里就不细说了!
【原创教程】爬百度文库文档内容
【Python】萌新跟来我入门Python爬虫(二)
【Python】萌新跟我来入门Python爬虫
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|