共计 565 个字符,预计需要花费 2 分钟才能阅读完成。
因为好久没写过爬虫了,这次单位有需求要爬取几 TB 的资料,在测试过程中遇到一些问题,总结下来,未来写爬虫的时候可以避坑。
问题 1:JSON Object Key 不存在 。规范的情况下,返回的 JSON 对象数组应该是统一的,即使数据不存在也应该是空字符串或者 null 或者别的什么,但是这个系统过于老旧,编码也乱七八糟不规范,导致个别数据不存在的时候,压根不返回这个 Key。
解决方案:
if 'key' not in item:
continue
只需要判断一下这个 key 在不在 item 里,不在直接跳出此循环。
问题 2:保存的文件名 / 路径有非法字符。 在 Windows 下,创建的文件夹 / 文件时,文件名不能包含以下字符:
\ / : * ? " < > |
因此,如果文件名 / 路径名中有此些字符,需要替换掉,这里提供一个替换方法:
def string_format(str: string, replacement: string=''):
illegal_words = ['\\', '/', '*', '?' '"','<','>','|']
for word in illegal_words:
if word in str:
str = str.replace(word, replacement)
return str
参数说明:str 要格式化的字符串,replacement 将非法字符替换成指定内容,不填写则替换空字符串。
正文完