数据获取——爬虫-1

  • 从今天开始,我将在个人博客中更新个人学习笔记和个人学习心得。我如今正在学习崔庆才老师的爬虫相关课程。相关视频下载到本地大概也有将近一年了吧,对相关内容零零散散也看了有一些,整体来讲没啥印象,更别说体系了。从上周开始,我立志一个月内将其看完,更新学习笔记。*javascript

    立志不作马来人!爬虫在行动

    爬虫的基本流程

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

请求(Request)和响应(Response)

什么是Request和Response

Figure 1 Request和Response之间关系

Request的类型

主要有GET和POST两种,其他请求方法不经常使用,因此进行解释java

  1. GET:方便
    • 请求内容所有包含在网址中
    • 能够经过网址直接提交Request
  2. POST:安全
    • 请求内容包含在隐藏在FormData中
    • 构建FormData进行访问

URL

URL:统一资源定位器,定位网页中元素的下载位置。正则表达式

  • 如下全部内容都可以在任意网页中按F12,在网页后端中看到,chrome中通常在“Elements"、”Source“、”Console“和“Network”选项卡中查找,FireFox浏览器“网络”、“控制台”和“查看器”选项卡中查找。*
  • 下述四个四项内容均在“网络”选项卡中,任意点开一个请求便可找到。 *chrome

    请求头

    请求头中包含一些配置信息,包括浏览器信息。数据库

请求体

请求时额外提交的信息,如POST中的FormData。json

相应状态(status_code)

有多种相应状态:后端

  • 200:成功
  • 301:跳转
  • 404:找不到页面
  • 502:服务器错误

响应头(headers)

服务器对浏览器的一些设置要求。浏览器

响应体(text)

请求的资源内容安全

什么样的数据能够被抓取

  1. 网页文本:HTML或者Json格式文本
  2. 图片:获取二进制文件(content),保存问相应图片。
  3. 视频:方法同图片。
  4. 其余:能请求到的一切文件。

解析方式

  1. 直接处理:特别简单的网页(内容以字典形式存储)。
  2. json解析:
  3. 正则表达式:提取HTML代码中相应的文本。
  4. BeautifulSoup、pyQuery、Xpath等解析库

怎样解决Javascript渲染问题

  1. 分析Ajax请求。
  2. 使用Selenium、WebDriver模拟一个浏览器加载。
  3. 使用Splash
  4. pyV八、Gost.py模拟加载

存储数据

  1. 文本:纯文本、XML格斯、Json格式等。
  2. 关系型数据库:结构化表单存储
  3. 非关系型数据库:key-value型存储
  4. 二进制文件:视频、图片
相关文章
相关标签/搜索