佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Python爬蟲之爬取某文庫文檔數據

Python爬蟲之爬取某文庫文檔數據

熱門標簽:百度AI接口 Win7旗艦版 客戶服務 電話運營中心 企業(yè)做大做強 語音系統 硅谷的囚徒呼叫中心 呼叫中心市場需求

一、基本開發(fā)環(huán)境

Python 3.6

Pycharm

二、相關模塊的使用

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

安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。

三、目標網頁分析

網站的文檔內容,都是以圖片形式存在的。它有自己的數據接口

接口鏈接:

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

接口的請求參數

四、整體思路

  • 請求網頁返回response數據(字符串)
  • 通過re模塊匹配提取中間的數據(列表)索引取0(字符串)
  • 通過json模塊是把提取出來的數據轉換成json模塊
  • 通過遍歷獲取每張圖片的url地址
  • 保存圖片到本地文件夾
  • 把圖片保存到word文檔
  • 爬蟲代碼實現

五、爬蟲代碼實現

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 這樣,方便后續(xù)保存到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爬取文檔數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python爬取股票信息,并可視化數據的示例
  • Python爬取數據并實現可視化代碼解析
  • python如何爬取網站數據并進行數據可視化
  • 高考要來啦!用Python爬取歷年高考數據并分析
  • 單身狗福利?Python爬取某婚戀網征婚數據
  • Python爬蟲之自動爬取某車之家各車銷售數據
  • Python爬蟲之爬取2020女團選秀數據
  • python爬蟲之教你如何爬取地理數據
  • Python爬蟲實戰(zhàn)之爬取京東商品數據并實實現數據可視化

標簽:長沙 濟南 崇左 山西 喀什 山西 海南 安康

巨人網絡通訊聲明:本文標題《Python爬蟲之爬取某文庫文檔數據》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    行唐县| 靖州| 利川市| 革吉县| 宁阳县| 焦作市| 无棣县| 迁西县| 吴旗县| 锡林浩特市| 富源县| 望谟县| 抚宁县| 眉山市| 桃源县| 军事| 略阳县| 高邑县| 太仓市| 太白县| 青铜峡市| 长宁县| 绍兴市| 大渡口区| 石嘴山市| 莫力| 庄河市| 哈巴河县| 布拖县| 高要市| 金山区| 梁平县| 读书| 奉贤区| 五指山市| 东乡| 桑植县| 凤台县| 固镇县| 西吉县| 浏阳市|