目录
- 1. 什么是爬虫?
- 2. 爬虫的基本流程有哪些?
- 3. Request 中包含了哪些内容?
- 4. Response 中包含了哪些内容
- 5. HTTP 请求中的 POST、GET 有什么区别?
- 6. HTTP、HTTPS 协议有什么区别?
- 7. Cookie 和 Session 有什么区别?
- 8. 域名和 IP 之间有什么关系?如何查看某个域名对应的 IP 地址?
- 9. 在 HTTP 协议头中,keep-alive 字段有什么作用?
- 10. HTTP 常用的状态码 (Status Code) 有哪些?
- 11. 常用的爬虫框架或者模块有哪些? 谈谈它们的区别或者优缺点?
- 12. 真题
-
- 12.1 Robots 协议是什么?
- 12.2 爬虫能爬取哪些数据?
- 12.3 如何解析爬取到的数据?
- 12.4 列举使用过的 Python 网络爬虫所用到的网络数据包。
- 12.5 列举使用过的 Python 网络爬虫所用到的解析数据包。
- 12.6 通过爬虫爬取到的数据有哪些保存方式?
- 12.7 常见的反爬虫机制有哪些?
- 12.8 如何提高爬取效率?
- 12.9 简述 Beautiful Soup 模块的作用及基本使用?
- 12.10 有一个 html 文本字符串,取出这个 a 标签里面的 href 的链接地址?
- 12.11 简述同源策略
- 12.12 简述 Requests 模块的作用及基本使用?
- 12.13 写爬虫是用多进程好?还是多线程好?为什么?
- 12.14 在不使用动态爬取的情况下,如何解决同时限制 IP、Cookie、Session (其中有一些是动态生成的) ?
- 12.15 在爬虫的过程中,如何解决验证码的问题?
- 12.16 Cookie 过期如何处理?
- 12.17 HTTPS 有什么优点和缺点?
- 12.18 HTTPS是如何实现数据的安全传输的?
- 12.19 代理 IP 里的 透明、匿名、高匿 分别指的是什么?
- 12.20 什么是 Xpath?
- 12.21 lxml 库的作用有哪些?
1. 什么是爬虫?
网络爬虫 (又被称为网页蜘蛛,网络机器人或网页追逐者),是一种按照指定规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫等,网络爬虫简称爬虫。
爬虫通俗地讲就是通过程序去获取 Web 页面上自己想要的数据,也就是自动抓取网页数据的程序。一般来说,只要能通过浏览器访问的数据都可以通过爬虫获取到。爬虫的本质:就是模拟浏览器打开网页,然后获取网页中所需要的那部分数据。
浏览器打开网页的过程包括:当在浏览器中输入地址后,经过 DNS 服务器查找到服务器主机,向服务器发送一个请求,服务器经过解析后再返还给用户浏览器结果,包括 html、js、css 等文件内容,在浏览器解析这些数据后,最终呈现给用户,即用户在浏览器上看到的结果。所以用户看到的浏览器的结果就是由 html 代码构成的。爬虫就是为了获取这些内容,通过分析和过滤 html 代码,从中获取想要的文本、图片及视频等资源。
2. 爬虫的基本流程有哪些?
可以分为以下几个流程:
(1) 发起请求,通过 HTTP 库向目标站点发起请求,即发送一个 Request,请求可以包含额外的 Header 等信息