JD:
岗位偏向数据治理
面试流程:
实习时间安排
讲讲项目,数据分析后的策略输出有哪些
后续的效果有哪些
项目中有分析哪些指标
出现的问题有哪些,异常数据后续的解决方案如何设计的
FineBI使用过程中出现过什么问题
可视化过程中有使用过直方图和柱状图么
有些过正则表达式么
如何匹配26个字母呢,关键字是什么<正则表达式>
爬虫了解到什么程度
什么样行为的用户,可以判断为爬虫用户
- 高频访问:短时间内频繁请求页面,超出正常用户的访问频率。
- 请求模式:爬虫往往有特定的请求模式,如固定的时间间隔、特定的页面顺序等。
- 用户代理(User-Agent):爬虫可能使用默认的或者伪造的用户代理字符串,而不是常见的浏览器用户代理。
- IP地址:如果来自同一IP地址的请求异常高,这可能表明是爬虫行为。
- 异常的请求头:爬虫可能不会发送完整的或者标准的HTTP请求头信息。
- 异常的点击率:如果一个用户在短时间内点击了大量链接,这可能不是正常的用户行为。
- 会话行为:正常用户的行为通常会有登录、浏览、交互等,而爬虫可能只有浏览行为。
- ** referer头**:爬虫的referer头可能不符合正常的访问逻辑,或者根本不存在。
- 接受语言:爬虫可能不会设置或者设置一个非正常的接受语言(Accept-Language)。
- cookies的使用:正常用户会有cookies的设置和读取,而爬虫可能不使用或者每次都请求新的cookies。
- 异常的地理位置信息:如果一个用户的IP地址和其声称的地理位置信息不符,这可能是一个爬虫。
- 访问深度:爬虫可能会深入访问网站的多个层级,而正常用户可能只访问表层内容。
- 异常的请求参数:爬虫可能会发送异常或者不存在的请求参数。
- 异常的HTTP方法使用:爬虫可能会使用不常见的HTTP方法,如HEAD请求等。
- robots.txt文件遵守情况:遵守robots.txt文件是爬虫的常见行为,尽管这不是强制的。
- 加载图片和CSS:正常用户会加载网页的所有资源,而爬虫可能只加载HTML内容。
【补】常见的反爬机制
- 验证码(Captcha):
-
- 验证码是一种交互式验证方式,要求用户完成一个简单的任务(如点击图片中的特定对象、输入字符、解答问题等)以证明他们是人类。
- 验证码可以有效地防止自动化工具的访问,因为它们无法处理交互式任务。
- 动态内容加载:
-
- 动态内容加载是指网站在用户请求时动态生成内容,而不是在服务器上预先生成。
- 动态内容加载可以增加爬虫抓取的难度,因为爬虫需要能够模拟用户的行为来触发内容的加载。
- 请求频率限制:
-
- 网站可以限制每个IP地址在一定时间内可以发送的请求次数。
- 如果请求频率超过限制,网站可能会拒绝响应或返回错误。
- IP地址黑名单:
-
- 如果检测到某个IP地址的请求行为异常,网站可以将其加入黑名单,阻止其进一步访问。
- 黑名单通常由网站管理员手动维护,或者通过自动化的系统来更新。
- User-Agent检测:
-
- 网站可以检查请求的User-Agent字符串,以确定请求来自正常的浏览器还是爬虫。
- 如果User-Agent字符串不符合常规,网站可能会拒绝响应。
- 请求头检查:
-
- 网站可以检查请求头中的其他字段,如Referer、Accept-Language等,以确定请求是否来自爬虫。
- 如果请求头中的信息不符合预期,网站可能会拒绝响应。
- JavaScript内容加载:
-
- 网站可以使用JavaScript动态加载内容,而不是直接在HTML中包含。
- 爬虫需要能够执行JavaScript代码才能获取这些内容。
- API访问限制:
-
- 如果网站提供API接口,可以对API的使用进行限制,如设置API密钥、限流、限时等。
- 爬虫需要获取有效的API访问凭证才能通过API获取内容。
- 基于登录的保护:
-
- 网站可以要求用户登录后才能访问某些内容。
- 爬虫需要能够模拟登录过程才能获取受保护的内容。
- 数据加密:
-
- 网站可以对敏感数据进行加密,爬虫即使获取到数据也无法直接使用。
- 流量分析:
-
- 网站可以通过分析请求流量来检测爬虫行为。
- 如果发现异常流量模式,网站可以采取相应的措施。
- 验证码和机器人挑战:
-
- 除了传统的验证码,网站还可以提供更复杂的机器人挑战,如点击特定区域、解决数学问题等
【反爬对应解决方案】
- User-Agent模拟:
-
- 爬虫可以使用多种User-Agent字符串,模拟不同类型的浏览器或设备。
- 有时爬虫还会伪造User-Agent字符串,使其看起来像是来自真实的浏览器。
- 代理IP池:
-
- 爬虫可以利用代理IP池,不断更换IP地址来避免被识别和封禁。
- 代理IP可以来自公共代理服务器、私人代理提供商或爬虫自己收集的代理。
- 请求频率控制:
-
- 爬虫可以设置请求频率控制,避免在短时间内发送过多请求。
- 通过控制请求间隔和请求数量,爬虫可以模拟正常用户的访问模式。
- JavaScript解析:
-
- 对于使用JavaScript动态加载内容的网站,爬虫可以使用JavaScript解析器(如Selenium)来执行JavaScript代码,获取动态加载的内容。
- 爬虫也可以使用其他工具或库(如PyQuery、BeautifulSoup等)来解析和提取HTML内容。
- 登录模拟:
-
- 对于需要登录才能访问的内容,爬虫可以模拟登录过程,获取登录凭证(如Cookies、Token等)。
- 爬虫可以分析登录表单,提交正确的用户名和密码,或者使用自动化工具来提取登录凭证。
- 数据提取和解析:
-
- 爬虫需要能够提取和解析网站上的有用信息,如文本、链接、图片等。
- 爬虫可以使用正则表达式、XPath、CSS选择器等方法来定位和提取数据。
- 异常处理和重试机制:
-
- 爬虫需要能够处理网站可能出现的异常情况,如验证码、错误页面等。
- 爬虫可以设置重试机制,当遇到异常时自动重试,直到成功获取所需数据。
- 验证码处理:
-
- 对于需要验证码的网站,爬虫可以尝试自动识别验证码,或者使用人机验证码解决服务来绕过验证码。
- 爬虫也可以通过其他方式获取验证码的答案,如人工输入或利用其他爬虫生成的答案。
- API访问:
-
- 对于提供API接口的网站,爬虫可以利用API进行数据获取。
- 爬虫需要遵守API的使用规则,获取有效的API访问凭证,并处理API的限流和限时等限制。
- 流量分析规避:
-
- 爬虫可以通过调整请求间隔和请求数量,避免在短时间内发送大量请求,从而规避流量分析。
- 爬虫还可以通过分布式爬虫,将请求分散到多个节点,降低单个IP的请求频率。
项目中有使用过哪些比较复杂的SQL查询
专业课中最熟悉的,是哪两个
校园经历简单讲讲
Excel有使用过吗
项目中的集群搭建简单讲一下
反问环节:
主要做数据治理的工作