【Python】萌新跟来我入门Python爬虫(三)
本帖最后由 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地址,继续访问下地址并下载
理清了逻辑,那么直接贴代码了:
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爬虫
散与聚 发表于 2018-7-27 18:07
新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/”
代码22行img_path = "D:/photo/book/" 散与聚 发表于 2018-7-27 18:07
新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/”
这个是自定义的,图片保存的目录 沙发~~ 楼主很强呀{:1_918:} (三)终于更新了 新人小白,想问下变量“path”中为什么会存在初始值“D:/photo/book/” 我是菜鸟,进入跟大佬们学习学习 感谢分享 抓抓抓接口{:1_926:} 感谢分享
页:
[1]
2