以下问题解答只是个人理解,可能存在错误,供参考,有错敬请指正,谢谢,也可以说下自己的理解,或者自行百度更权威的理解
- Python中__init__ 和__new__的区别
__new__是在实列创建之前被调用,创建实列返回实列对象
__init__是在实列创建之后被调用,通常用来初始化对象 - 整个爬虫的工作流程
发送请求-接收数据-处理数据-存储 - http的响应码
(100-199)信息响应
(200-299)成功响应
(300-399)重定向
(400-499)客服端错误
(500-599)服务端错误 - 进程、线程、协程的区别
进程里可以有多个线程(比如车道上车谁先走是没有安排的,而协程是安排好的(交警指挥车辆)),协程控制代码块的执行
进程相当于一个py文件,进程想当于文件中的代码,代码错了, - 多线程和多进程
多进程执行不同的程序(电脑打开不同的程序)
多线程:程序有多条执行路径(爬虫需要进行多个url的请求,分成多条一起请求) - 如何实现多进程和多线程
多进程,多个程序一起运行
多线程,url中的信息提取,同时提取 - python并发和并行
并发:单处理器同时处理多个任务(一个程序爬取不同的网站)
并行:多处理器同时处理多个任务(并行,指的是同一时刻、同时发生 - map 函数
实现给一个函数传多个参数得出结果 - 函数装饰器的理解
相当于一个房子,我们给他装饰,比如加个家具,电脑 - 正则里match 与search 的区别
一个从头开始匹配(开始没匹配成功报错
一个从整个一起匹配(匹配完毕返回 - varchar 与char 的区别
char定长,varchar不定长 - 常见的反爬虫和应对方法
header( User-Agent,cookie,referer)----请求的时候加上去
封ip(请求过于频繁)----换代理ip
直接请求原网页网址,提取不到数据(动态页面)–自动化解决,或者找到真实的数据接口
需要传参特定数据进行请求才能拿到数据,js解密
验证码,打码平台,滑动验证码可以自动化解决(类似淘宝),识别文字的话(ocr)