如何爬取BCZ的四级/六级词汇
声明:
以下内容仅供学习参考,切勿滥用,滥用与本作者无关!
一,安装Charles抓包工具
步骤:
- 打开Charles查看主机地址
- 配置手机端代理(主机地址:端口)
- 安装证书信任
- 抓取测试
- 抓取数据包
- 解析数据包
- 查看csv数据
关于下载安装Charles,安装证书,配置代理较为简单自行百度即可
打开BCZ下载词汇
二,抓取数据包
打开Charles抓取数据包
第二个或更多同样操作,待下载完成之后放到同一个r目录下
三,解析数据包并保存
下载好的数据包应该是.
zpk
结尾的,如用文版打开为乱码,如下:
依稀能看到几个关键字 句子,示意等
下面使用代码解析并保存为csv格式(Excel查看)
import glob
import re
import csv
def extract_url():
zpk_repo_path = 'r2/' # 存放zpk文件的文件夹路径
file_list = glob.glob(zpk_repo_path + '*.zpk')
fw = open('word.csv', 'wt',encoding='utf-8-sig',newline="")
# 注意如使用excel打开需使用utf-8-sig编码格式,否则乱码. newline=""不产生第二行空格
csv_writer = csv.writer(fw)
title = ['word','例句','mean','句意']
csv_writer.writerow(title) # 写入标题
for file in file_list:
print(file)
with open(file, 'rb') as f:
line = ''
while line.find('sentence_audio') < 0:
line = f.readline().decode('utf8', 'ignore')
try:
word = re.search('"word":"(.*?)"', line).group(1)
word_trans = re.search('"mean_cn":"(.*?)"', line).group(1)
sentence = re.search('"sentence":"(.*?)"(,|})', line).group(1)
sentence = sentence.replace(r'\u0027', "'")
sentence = sentence.replace('\\', "")
sentence_trans = re.search('"sentence_trans":"(.*?)"', line).group(1)
z = []
z.append(word)
z.append(sentence)
z.append(word_trans)
z.append(sentence_trans)
csv_writer.writerow(z)
except BaseException:
print(file)
fw.close()
def main():
print('开始解析:')
extract_url()
print('解析完成!')
if __name__ == '__main__':
main()
下载完成打开测试:
标签:词汇,word,file,sentence,爬取,bcz,line,csv,数据包 From: https://www.cnblogs.com/xueyitian/p/18117465抓取完成.