面试记录
Q&A
Selenium 爬虫流程与步骤
-
安装 selenium 库
pip install selenium
-
使用驱动实例开启会话
以 Chrome 浏览器为例:
driver = webdriver.Chrome()
-
在浏览器上执行操作
driver.get(url = "")
-
请求浏览器信息
title = driver.title
-
建立等待策略
在尝试定位元素之前,要保证元素成功渲染在页面上
driver.implicity_wait(0.5)
-
发送命令查找元素
text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
-
操作元素
- 点击
- 发送键位
- 清楚
- 提交
- 选择
-
获取元素信息
message = driver.find_element(by=By.ID, value="message")
``text = message.text`
-
结束会话
driver.quit()
常见反爬机制处理
-
单个 TCP 连接 HTTP 请求次数限制
禁用 keep-alive
请求到一定次数后重新建立一个 TCP 连接
不要复用同一个 session 会话
-
封禁 IP
使用 IP 代理池
每隔一段时间换一次 IP 进行访问
-
数据加密、JS 混淆、自定义字体 ttf
浏览器打断点,逆向 JS,解密数据
-
token/sign 等加密参数
-
UA 浏览器头
-
登录
-
验证码
常用正则表达式
-
或 |
-
(分组)
-
重复 *
-
字符匹配
\ 转义
\d [0-9]
\D [^0-9]
\w 表示数字、大小写字母、下划线
\W 非单词字符
-
位置匹配
\b 单词边界
\B 非单词边界
Flask 框架的优缺点
- 优点
- 快速上手,轻量化
- 可扩展性强
- 缺电
- 需要自己配置第三方库和组件
- 依赖插件
大模型模型微调方法
大型模型微调即是向模型“输入”更多信息,对模型的特定功能进行“优化”,通过输入特定领域的数据集,使模型学习该领域知识,从而优化大模型在特定领域的NLP任务中的表现,如情感分析、实体识别、文本分类、对话生成等。

-
Prompt Tuning
通过修改提示词(prompt)来引导模型生成符合特定任务或情景的输出
-
Prefix-Tuning
前缀微调,通过在输入文本前添加一段可学习的“前缀”来指导模型完成任务
-
LoRA
通过分解预训练模型中的部分权重矩阵为低秩矩阵,并仅微调这些低秩矩阵的少量参数来适应新任务。