前言
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码
开发环境:
- 版 本: python 3.8
- 编辑器:pycharm 2022.3.2
模块使用:
- requests --> pip install requests
- re
- base64
- docx --> pip install python-docx
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名
(如果你觉得安装速度比较慢, 你可以切换国内镜像源)
爬虫流程思路:
一. 数据来源分析
- 明确需求: 明确采集的网站以及数据内容
- 网址: https://max.book118.com/html/2021/0519/8055055075003102.shtm?vip_view=search
- 数据: 文档数据内容
文档内容, 存在方式基本上图片的形式…
- 抓包分析
- 打开开发者工具: F12
- 刷新网页
- 点击查看图片数据 Img

https://view-cache.book118.com/view19/M03/2F/33/wKh2D2ClvVuAKwlSAADEX_8Jeug078.png
- 通过关键字搜索, 找到所有文档内容所对应数据包位置
二. 代码实现步骤
- 发送请求: 模拟浏览器对于url地址发送请求
- 获取数据
- 解析数据
- 保存数据
代码展示
''' python资料获取看这里噢!! 小编 V:qian97378,即可获取: 文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书! ''' # 导入数据请求模块 import requests # 导入正则表达式模块 import re # 导入json import json # 导入时间模块 import time import base64 from docx import Document
讯享网
“”"
文字识别:
1. 登陆百度云
2. 创建应用 领取资源
3. 点击技术文档
- 获取token值 <代码现成>
- 使用API接口识别文字内容 <代码现成>
“”"
讯享网def main(img_content): url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxxx&client_secret=xxxx" headers = {
'Content-Type': 'application/json', 'Accept': 'application/json' } response = requests.request("POST", url, headers=headers) access_token = response.json()['access_token'] print(access_token)
‘’’
通用文字识别(高精度版)
‘’’
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
二进制方式打开图片文件 传入二进制图片数据
讯享网''' python资料获取看这里噢!! 小编 V:qian97378,即可获取: 文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书! ''' img = base64.b64encode(img_content) params = {
"image": img} request_url = request_url + "?access_token=" + access_token headers = {
'content-type': 'application/x-www-form-urlencoded'} response_json = requests.post(request_url, data=params, headers=headers).json() words_result = '\n'.join([i['words'] for i in response_json['words_result']]).replace('原创力文档', '').replace('max.book118.com', '').replace('下载高清无水印', '') print(words_result) return words_result doc = Document()
保存文档中
for page in range(1, 21, 6):
延时
讯享网 time.sleep(2) print(page)
请求链接 -> 复制开发者工具 请求网址
url = 'https://openapi.book118.com/getPreview.html'
请求参数 -> 复制开发者工具 载荷
讯享网''' python资料获取看这里噢!! 小编 V:qian97378,即可获取: 文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书! ''' data = {
'project_id': '1', 'aid': '', 't': '14b82bebac064a1ab0ff39103', 'view_token': 'WxkjakMHjCp171nCrqPbImkvoeN5_Ei9', 'page': page, # 'callback': 'jQuery0_29', '_': '30', }
模拟浏览器 -> 复制开发者工具 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36' }
- 发送请求
讯享网 response = requests.get(url=url, params=data, headers=headers)
- 获取响应文本数据, 正则匹配数据
''' python资料获取看这里噢!! 小编 V:qian97378,即可获取: 文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书! '''
html_data = re.findall('jsonpReturn\((.*?)\);', response.text)[0] # json字符串数据, 转成json字典数据 json_data = json.loads(html_data) # 键值对取值 字典键值对 key:value for img in json_data['data'].values(): # https://view-cache.book118.com/view11/M00/2B/31/wKh2C19zQOuAZq11AACGj3HswGE408.png img_url = 'https:' + img # 获取图片的二进制数据 img_content = requests.get(url=img_url, headers=headers).content # 识别图片里面的文字内容 print(img_url) words_result = main(img_content=img_content) # 写入文档数据 doc.add_paragraph(words_result) doc.save('脑筋急转弯.docx')
尾语
好了,今天的分享就差不多到这里了!
对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇 更多源码、资料、素材、解答、交流 皆点击下方名片获取呀👇👇👇


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/66930.html