- 发起请求:HTTP库向目标站点发起请求(Request),Request中最好还包含一些配置信息,等待服务器响应。
- 获取相应内容:若是服务器正常相应,会返回相应的页面内容(Response);
- 解析内容:Response的类型有不少种,须要使用不一样方法进行解析。
- 数据存储:根据要求存储为相应的类型。
请求(Request)和响应(Response)
什么是Request和Response

Request的类型
主要有GET和POST两种,其他请求方法不经常使用,因此进行解释java
- GET:方便
- 请求内容所有包含在网址中
- 能够经过网址直接提交Request
- POST:安全
- 请求内容包含在隐藏在FormData中
- 构建FormData进行访问
URL
URL:统一资源定位器,定位网页中元素的下载位置。正则表达式
请求体
请求时额外提交的信息,如POST中的FormData。json
相应状态(status_code)
有多种相应状态:后端
- 200:成功
- 301:跳转
- 404:找不到页面
- 502:服务器错误
服务器对浏览器的一些设置要求。浏览器
响应体(text)
请求的资源内容安全
什么样的数据能够被抓取
- 网页文本:HTML或者Json格式文本
- 图片:获取二进制文件(content),保存问相应图片。
- 视频:方法同图片。
- 其余:能请求到的一切文件。
解析方式
- 直接处理:特别简单的网页(内容以字典形式存储)。
- json解析:
- 正则表达式:提取HTML代码中相应的文本。
- BeautifulSoup、pyQuery、Xpath等解析库
怎样解决Javascript渲染问题
- 分析Ajax请求。
- 使用Selenium、WebDriver模拟一个浏览器加载。
- 使用Splash
- pyV八、Gost.py模拟加载
存储数据
- 文本:纯文本、XML格斯、Json格式等。
- 关系型数据库:结构化表单存储
- 非关系型数据库:key-value型存储
- 二进制文件:视频、图片