目录
1.当输入一个类似www.baidu.com的网址时,返回页面的过程发生了什么?
2.Scrapy框架是如何进行二次请求的,参数有哪些,各代表什么含义?
3.scrapy框架的中间件有几种,简单介绍其中的一个的使用?
4.re模块中,match findall search 的区别?
5.写出创建一个scrapy项目到执行的命令,以百度为例
6.scrapy的优缺点?
7.请说明HTTP状态码的用途,请说明常见的状态码机器意义?
1.当输入一个类似www.baidu.com的网址时,返回页面的过程发生了什么?
(1)浏览器向DNS服务器发送www.baidu.com域名解析请求
(2)DNS服务器返回解析后的ip给客户端浏览器,浏览器向该ip发送页面请求
(3)服务器接收到请求后,查询该页面,并将页面发送给客户端浏览器
(4)客户端浏览器接收到页面后,解析页面中的引用,并再次向服务器发送引用资源请求;
(5)服务器接收到资源请求后,查找并返回资源给客户端
(6)客户端浏览器接收到资源后,渲染,输出页面展现给用户
2.Scrapy框架是如何进行二次请求的,参数有哪些,各代表什么含义?
yield scrapy.Request(url=detail_url,callback=self.parse_detail,mete={'data':item},encoding='utf-8',dont_filter=True)
url = detail_url 传递二次访问页面的url
callback=self.parse_detail 处理二次返回的解析函数
meta = {'data':item} 将一层所需数据传递到二层函数
encoding='utf-8' 编码
dont_filter=True 这个URL不参与去重
3.scrapy框架的中间件有几种,简单介绍其中的一个的使用?
(1) Spider Middleware 和 Downloader Middleware
(2)Downloader Middleware 有以下几个函数被管理
process_request request通过下载中间件时,该方法被调
process_response 下载结果经过中间件时被此方法处理
process_exception 下载过程中出现异常时被调用
4.re模块中,match findall search 的区别?
(1)match re.match(pattern,string[flags])
从首字母开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败返回None,若要完全匹配,pattern要以$结尾
(2)search re.search(pattern,string[flags])
若string中包含pattern子串,则返回search对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个
(3)findall re.findall(pattern,string[flags])
返回的string中所有与pattern相匹配的全部子串,返回形式为数组
5.写出创建一个scrapy项目到执行的命令,以百度为例
创建:
scrapy startproject baidu
cd baidu
scrapy genspider bd baidu.com
启动:
scrapy crawl bd
6.scrapy的优缺点?
优点:
(1)scrapy是异步的
(2)采取可读性更强的xpath代替正则
(3)强大的统计和log系统
(4)同时在不同的url上爬行
(5)支持shell方式,方便独立测试
(6)有middleware 方便写统一的过滤器
(7)通过管道的方式存入数据库
缺点:
(1)基于python的爬虫框架,扩展性比较差
(2)基于twisted框架,运行中的exception是不回干掉reactor(反应器),并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉
7.请说明HTTP状态码的用途,请说明常见的状态码机器意义?
通过状态码告诉客户端服务器的执行状态,以判断下一步该执行什么操作。
常见的状态机器码有:
100-199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程
200-299:表示服务器成功接收请求并已完成处理过程。常用200(请求成功)
300-399:为完成请求,客户需要进一步细化请求。302(所有请求页面或已经临时转移到新的url)304/307(使用缓存资源)
400-499:客户端请求有错误。403(服务器拒绝访问,权限不够) 404(服务器无法找到被请求页面)
500-599:服务器端出现错误。500(请求未完成,服务器遇到不可预知的情况)
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试