• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python爬虫之爬取某文库文档数据

    一、基本开发环境

    Python 3.6

    Pycharm

    二、相关模块的使用

    import os
    import requests
    import time
    import re
    import json
    from docx import Document
    from docx.shared import Cm

    安装Python并添加到环境变量,pip安装需要的相关模块即可。

    三、目标网页分析

    网站的文档内容,都是以图片形式存在的。它有自己的数据接口

    接口链接:

    https://openapi.book118.com/getPreview.html?project_id=1aid=272112230t=f2c66902d6b63726d8e08b557fef90fbview_token=SqX7ktrZ_ZakjDI@vcohcCwbn_PLb3C1page=1callback=jQuery18304186406662159248_1614492889385_=1614492889486
    

    接口的请求参数

    四、整体思路

    五、爬虫代码实现

    def download():
        content = 0
        for page in range(1, 96, 6):
            # 给定 2秒延时
            time.sleep(2)
            # 获取时间戳
            now_time = int(time.time() * 1000)
            url = 'https://openapi.book118.com/getPreview.html'
            # 请求参数
            params = {
                'project_id': '1',
                'aid': '272112230',
                't': 'f2c66902d6b63726d8e08b557fef90fb',
                'view_token': 'SqX7ktrZ_ZakjDI@vcohcCwbn_PLb3C1',
                'page': f'{page}',
                '_': now_time,
            }
            # 请求头
            headers = {
                'Host': 'openapi.book118.com',
                'Referer': 'https://max.book118.com/html/2020/0427/8026036013002110.shtm',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
            }
            response = requests.get(url=url, params=params, headers=headers)
            # 使用正则表达式提取内容
            result = re.findall('jsonpReturn\((.*?)\)', response.text)[0]
            # 字符串转json数据
            json_data = json.loads(result)['data']
            # 字典值的遍历
            for value in json_data.values():
                content += 1
                # 拼接图片url
                img_url = 'http:' + value
                print(img_url)
                headers_1 = {
                    'Host': 'view-cache.book118.com',
                    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
                }
                # 请求图片url地址 获取content二进制数据
                img_content = requests.get(url=img_url, headers=headers_1).content
                # 文件名
                img_name = str(content) + '.jpg'
                # 保存路径
                filename = 'img\\'
                # 以二进制方式保存 (图片、音频、视频等文件都是以二进制的方式保存)
                with open(filename + img_name, mode='wb') as f:
                    f.write(img_content)
    

    注意点:

    1、一定要给延时,不然后面接口数据会请求不到。

    2、请求图片url的时候headers参数需要写完整,否则保存图片是无法打开的

    3、命名最好是给定数字,1.jpg、2.jpg 这样,方便后续保存到word

    爬虫部分的代码还是比较简单的,没有什么特别的难度。

    爬取这些文档,都是需要打印或者查询所以要把这些单张的图片都保存到word文档里面。

    六、写入文档

    def save_picture():
        document = Document()
        path = './img/'
        lis = os.listdir(path)
        c = []
        for li in lis:
            index = li.replace('.jpg', '')
            c.append(index)
        c_1 = sorted(list(map(int, c)))
        print(c_1)
        new_files = [(str(i) + '.jpg') for i in c_1]
        for num in new_files:
            img_path = path + num
            document.add_picture(img_path, width=Cm(17), height=Cm(24))
            document.save('tu.doc')  # 保存文档
            os.remove(img_path)  # 删除保存在本地的图片
    

    到此这篇关于Python爬虫之爬取某文库文档数据的文章就介绍到这了,更多相关python爬取文档数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python爬取股票信息,并可视化数据的示例
    • Python爬取数据并实现可视化代码解析
    • python如何爬取网站数据并进行数据可视化
    • 高考要来啦!用Python爬取历年高考数据并分析
    • 单身狗福利?Python爬取某婚恋网征婚数据
    • Python爬虫之自动爬取某车之家各车销售数据
    • Python爬虫之爬取2020女团选秀数据
    • python爬虫之教你如何爬取地理数据
    • Python爬虫实战之爬取京东商品数据并实实现数据可视化
    上一篇:Python数据分析之pandas函数详解
    下一篇:python测试框架unittest和pytest区别
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python爬虫之爬取某文库文档数据 Python,爬虫,之爬,取某,文库,