1. http 基于 tcp/ip 协议
2. 百度是通用性爬虫
3. http 返回的状态码代表成功的是 200
4. 网页编码使用的函数式 encode()
5. 解码使用的函数式是 decode()
6. 爬虫又叫 网页蜘蛛、网络机器人
7. 什么是爬虫并解释其概念?
8. http 协议与 https 协议的区别
9. 谈谈你对 tcp 协议与 udp 协议的理解
10. 什么是 robots 协议?阐述 robots 协议与 爬虫的关系?
11. 网页编码有 utf-8、gbk、gb2312
12. 默认端口信息:
13. Requests 模块发送 get 请求的参数:
14. Requests 模块发送 post 请求的参数:
15. 简述聚焦爬虫的设计思路
16. 简述爬虫的分类及各类爬虫的概念
17. 请写出 8 中常用的请求方法
18. 列举反爬虫机制(至少 8 种)
19. Requests 发送请求时携带 headers 参数及作用(至少写 3 点)
20. Requests 向服务器发送文件时,文件的打开模式为 wb
21. Requests 模块那个类自动封装 cookie : session
22. 前端页面由 html、css、Javascript 等三部分组成
23. 请列举三个可以实现网页请求的库
24. 简述 html、css、Javascript 的作用
25. 针对 requests 请求的响应对象,如何获取其文本形式,二进制形式及 json数据
26. 请列举三种数据持久化的方式
27. 正则元字符中“.”代表 匹配 任意字符,换行符除外
28. Responose.text,response.content,res.json 分别获取响应数据的什么形式
29. 正则表达式中 (.*) 和 (.*?) 匹配区别
30. Re 模块常用的三个匹配方法,并简述其特点
31. Xpath 中根据索引定位节点数时,索引从 1 开始
32. Xpath 中的 contains()函数的第一个参数是 @属性名 ,第二个参数是属性包含的值
33. 请简述单属性多值匹配,多属性匹配概念及使用到的函数或关键字
34. 请列举爬虫中解析数据的模块(至少三种)
35. cookie 和 session 的区别
36. 将 dict 转成 json 串,用 json 模块的函数是 json.dumps()
37. Json.dumps 的参数 ensure_ascii 的作用 避免中文乱码
38. Xpath 如何定位节点的基本语法(至少写三点)
39. 请描述 xpath 表达式中的https://www.cnblogs.com/gaodenghan/p/div[@id=”name”]和https://www.cnblogs.com/gaodenghan/p//div[@id=”name”]的含义
40. 请写出 xpath 表达式中的/text()与//text()的区别
41. 请写出 tcp/udp 协议,ip 协议,arp 协议,http/https 协议及 ftp 协议分别位
于 tcp/ip 五层模型的哪一层
42. 请画出 tcp/ip 五层模型
43. 谈谈 tcp 三次握手四次挥手中为什么要三次握手
44. 请写出 ftp 协议,ssh 协议、mysql、MongoDB、redis 等协议或软件的默
45. 请列举三个第三方提取数据的 Python 库
46. Bs4 的三种选择器是什么:节点选择器、方法选择器、css 选择器
47. Beautifulsoup 使用步骤
48. 请简述 bs4 和 lxml 的区别
49. 请简述 bs4 中 get_text()和 string 的区别
50. Bs4 对定位到的标签如何获取其直接文本,子孙节点文本和属性
51. Selenium 使用 execute_script(js) 执行 JS 代码
52. 根据 name 属性查找网页标签使用 find_element_by_name 方法
53. 请列举至少四种 selenium 的交互操作
54. 列举 selenium 至少四种定位页面元素的方式
55. 假如实例化的浏览器对象名为 broswer,请写出该对象打开百度首页的代码以及获取百度首页源码的代码
56. Mongodb 查看当前工作的数据库的命令是 db
57. Mongodb 查看所有的非空数据库的命令是 show dbs
58. Show dbs 命令无法查看 空 数据库
59. 请写出 mongo db 数据的相关命令
60. 请列举三种关系型数据库与两种菲关系型数据库
61. Mongodb 数据库的优点
62. 请解释以下操作符的含义:
63. 向 queue 队列中添加元素操作为 queue.put()
64. 从 queue 队列获取元素的操作为 queue.get()
65. 多线程爬虫共封装了几个类?每个类的作用是什么
66. 谈谈你对进程与线程的理解
67. 请创建一个名为 dataqueueu 的队列,并向其中添加一个字符串 s=’helloqueue’的代码
68. 请简单绘制多线程爬虫的架构原理图
69. 简述什么是 i/o 密集型和计算密集型
70. 创建一个 scrapy 项目的命令是 scrapy startproject projectname
71. Scrapy 项目运行的命令是 scrapy crawl spidername
72. Scrapy 框架创建爬虫文件的命令为 scrapy genspider spidernamedomain
73. 简述 scrapy 五大核心组件及作用
74. Scrapy 框架有哪些优点
75. Scrapy 基于 Twisted 异步 框架
76. Allowed_domains 的作用是 限制爬虫爬取的范围
77. 请简述 scrapy 框架五大核心组件有哪些
78. 如何判断 scrapy 管道类是否需要 return item
79. 请问为什么下载器返回的相应数据不是直接通过引擎传递给管道,而是传递给 spider
80. 在 scrapy 框架中手动发起请求时,使用 meta 参数给解析方法传递数据
81. Scrapy 框架发送 post 请求使用 FormRequest 方法
82. 请简述scrapy阻止对start_urls内url主动发送请求时重写的父类方法名称,及使用 scrapy.request 的常用参数及含义
83. 简述详情页爬取的思路
84. 简述多页爬取的思路
85. 安装 scrapy 框架的命令为 pip install scrapy
86. Scrapy 框架管道必须实现的方法是 process_item
87. 请使用 fake_useragent 模块实现一个简单的 ua 池
88. Scrapy 框架中间件的分类及其作用
89. Scrapy 框架下载中间件的核心方法及其作用
90. 修改 scrapy 项目的配置需要修改 settings 文件
91. 应用 selenium 框架实例化浏览器对象时,使用 executable_path 参数指定驱动路径
92. 动态数据加载的两种情况及相应的解决方案
93. 简述 selenium 与 scrapy 框架对接实现动态加载数据的爬取思路
94. 请写出 selenium 的常用节点交互操作(至少 5 条)
95. 创建基于 crawl 的全站爬虫的命令
96. 简述 pipeline 的核心方法及各方法实现什么功能
97. Scrapy 原生框架实现分布式要依赖哪个组件?该组件解决了什么问题
98. 列举三种常用的网络数据爬取的模块或框架
99. 请谈谈动态数据加载的爬取思路
100. 请列举 5 种反爬机制及其对应的反反爬 策略
101. 请详细阐述如何在下载中间件中篡改请求头信息,代理 ip
102. 请写出爬虫 数据持久化 Python 与 mongodb 数据库的交互编码