主頁 > 知識(shí)庫 > Python爬蟲之爬取某文庫文檔數(shù)據(jù)

Python爬蟲之爬取某文庫文檔數(shù)據(jù)

熱門標(biāo)簽:房產(chǎn)電銷外呼系統(tǒng) 地圖標(biāo)注微信發(fā)送位置不顯示 南京銷售外呼系統(tǒng)軟件 浙江電銷卡外呼系統(tǒng)好用嗎 蓋州市地圖標(biāo)注 上海機(jī)器人外呼系統(tǒng)哪家好 315電話機(jī)器人廣告 地圖制圖標(biāo)注位置改變是移位嗎 地圖標(biāo)注的意義點(diǎn)

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

Python 3.6

Pycharm

二、相關(guān)模塊的使用

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

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

三、目標(biāo)網(wǎng)頁分析

網(wǎng)站的文檔內(nèi)容,都是以圖片形式存在的。它有自己的數(shù)據(jù)接口

接口鏈接:

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

接口的請(qǐng)求參數(shù)

四、整體思路

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

五、爬蟲代碼實(shí)現(xiàn)

def download():
    content = 0
    for page in range(1, 96, 6):
        # 給定 2秒延時(shí)
        time.sleep(2)
        # 獲取時(shí)間戳
        now_time = int(time.time() * 1000)
        url = 'https://openapi.book118.com/getPreview.html'
        # 請(qǐng)求參數(shù)
        params = {
            'project_id': '1',
            'aid': '272112230',
            't': 'f2c66902d6b63726d8e08b557fef90fb',
            'view_token': 'SqX7ktrZ_ZakjDI@vcohcCwbn_PLb3C1',
            'page': f'{page}',
            '_': now_time,
        }
        # 請(qǐng)求頭
        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)
        # 使用正則表達(dá)式提取內(nèi)容
        result = re.findall('jsonpReturn\((.*?)\)', response.text)[0]
        # 字符串轉(zhuǎn)json數(shù)據(jù)
        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'
            }
            # 請(qǐng)求圖片url地址 獲取content二進(jìn)制數(shù)據(jù)
            img_content = requests.get(url=img_url, headers=headers_1).content
            # 文件名
            img_name = str(content) + '.jpg'
            # 保存路徑
            filename = 'img\\'
            # 以二進(jìn)制方式保存 (圖片、音頻、視頻等文件都是以二進(jìn)制的方式保存)
            with open(filename + img_name, mode='wb') as f:
                f.write(img_content)

注意點(diǎn):

1、一定要給延時(shí),不然后面接口數(shù)據(jù)會(huì)請(qǐng)求不到。

2、請(qǐng)求圖片url的時(shí)候headers參數(shù)需要寫完整,否則保存圖片是無法打開的

3、命名最好是給定數(shù)字,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)  # 刪除保存在本地的圖片

到此這篇關(guān)于Python爬蟲之爬取某文庫文檔數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python爬取文檔數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

標(biāo)簽:雙鴨山 貴州 陽泉 克拉瑪依 赤峰 臨汾 日照 金華

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python爬蟲之爬取某文庫文檔數(shù)據(jù)》,本文關(guān)鍵詞  Python,爬蟲,之爬,取某,文庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python爬蟲之爬取某文庫文檔數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python爬蟲之爬取某文庫文檔數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章