'''
爬虫的构成
下载器: 抓取页面
urllib
equests
selenium + webdriver
解析器: 解释并提取页面元素
BeautifulSoup4
PyQuery
Xpath
Regular Expression
调度器:协调完成全部抓取任务
进程
线程
协程
分布式抓取
处理器:
数据清洗
数据入库
图片上传
'''
# 开始一个爬虫
'''
1、确定一个抓取目标
2、页面分析
① pyquery
② xpath
③ json
④ regexp
3、流程规则
4、存储规则
'''
'''
超文本传输协议 HTTP
统一资源定位符 URL
http://example.com:80/123/456/789?x=0&y=abc#part1
组成:
scheme: http、https
hostname: example.com
port: 80
path:/123/456/789
query: ?x=0&y=abc
fragment: #part1
'''
'''
Request
Method(方法) 作用
GET 请求一个指定资源的表示形式,使用GET请求应该只被用于获取数据
HEAD 请求一个月GET请求响应相同的响应,但没有响应体
POST 用于将实体提交到指定的资源,通常导致状态或服务器上的副作用更改
PUT 用于请求有效载荷替换目标资源的左右当前表示
DELETE 删除指定的资源
OPTIONS 用于描述目标资源的通信选型
CONNNET 建立目标资源标识的服务器隧道,主要用于做代理服务器
TRACE 执行一个消息回环测试,主要用于诊断
PATCH 用于对资源应用部分修改
'''
'''
Header
Header Names 描述
Accept text/plain 告诉服务器接受什么介质类型,/ 表示任何类型,type/* 表示该类型下的所有子类
Accept-Charset utf-8 浏览器申明自己接收的字符集
Accept-Encoding gzip 浏览器申明自己接收的编码方法,通常指定压缩方法
Accept-language zh-CN en-US 浏览器申明自己接收的语言
Cache-Control true,max-age 设置是否允许被缓存,缓存有效时间,也可以通过 no-cache 指令来禁止缓存
connection keep-alive 又称持久连接、连接重用
content-length 当内容将要被传输到浏览器时,服务器可以通过该头部告知浏览器将要传送文件的大小(bytes)
content-Type 指定响应的内容类型,浏览器将会依据该参数决定如何对文档进行解析,默认 text/html
User-Agent 浏览器标识
Cookie cookie信息
Referer 当前页面是通过此来源页面里的链接进入的
'''