首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫从头学之爬虫基本原理

预计阅读时间: 3分钟

1. 什么是爬虫:

1.请求网站并提取数据自动化程序

2. 爬虫基本流程:

1. 发起请求:

通过Http库向目标站点发起请求,即发送一个Request,请求包括额外的headers等信息,等待服务器响应。

2. 获取响应内容

如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。

3. 解析内容

得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

4. 保存数据

保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。

3. Request和Response

1. Request

1. Method请求方式

请求方法主要为两种Post,Get

主要差别:Get的请求信息在地址上,Post的请求信息在form-data

Get:请求参数全部在url后面,可以直接在url后面添加信息访问新地址

Post:请求信息在Form Data,需要构造表单,表单提交才可以post提交

2. 请求URL

URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定。

3. 请求头

包含请求时的头部信息,如User-Agent、Host、Cookies等信息。

4. 请求体

请求时额外携带的数据如表单提交时的表单数据

2. Response

1. 响应状态

有多种响应状态,如200代表成功、301跳转、404找不到页面、502服务器错误

2. 响应头

如内容类型、内容长度、服务器信息、设置Cookie等等。

3. 响应体

最主要的部分,包含了请求资源的内容,如网页HTML、图片二进制数据等。

4. 能抓什么数据

网页文本,图片,视频等要是能请求到的,都能获取。

5. 解析

直接处理

Json解析

正则表达式

BeautifulSoup

PyQuery

Xpath

6. 为什么我抓到的和浏览器看到的不一样?

因为爬虫爬取的数据是Js没有渲染后的数据,而浏览器中看到的是JS完成渲染后的数据。

7. 解决Js渲染问题

分析Ajax请求

Selenium/WebDriver

采用自动化测试工具,用Selenium来解析Js,相当于浏览器

Splash

PyV8、Ghost.py

8. 保存数据

1. 文本

2. 关系型数据库

3. 非关系型数据库

4. 二进制文件

9. 爬虫相关

请求

urllib

requests

解析

正则

BeautifulSoup

PyQuery(JQuery语法)

xpath

JavaScript渲染问题

Selenium/WebDriver

框架

PySpider

Scrapy

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180608G1TH1T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券