记录一下python写爬虫必须要注意的几个点

Cejauh 发布于 2023-04-02 587 次阅读


AI 摘要

在爬虫的世界里,细节往往决定成败。本文将带你探究在处理大规模数据时,常见的坑与解决方案。你将发现,如何优雅地应对不规范的JSON数据和Windows文件名中的非法字符,可以让你的爬虫项目如虎添翼。无论是初学者还是老手,谨记这些实用技巧,让数据采集更加顺畅!

因为好久没写过爬虫了,这次单位有需求要爬取几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 将非法字符替换成指定内容,不填写则替换空字符串。

May we meet again.
最后更新于 2025-05-07