爬虫简介

什么是爬虫

? 爬虫是一种应用程序,用于从互联网中获取有价值的数据,从本质上来看,属于client客户端程序。

互联网简介

? 互联网是由各种计算机设备,通过连接介质相互连接而组成的,其目的就是为了能在不同计算机之间传输数据,并且在互联网上有大量的数据是免费的。如果没有互联网,你只能拿着u盘过去拷贝。。

爬虫的原理

? 通常我们所谓的上网,其实本质就是用计算机通过网络去访问另一台计算机上的数据,而这些数据通常以网页的形式存在于服务器上,网页本质上就是一个文本文件,要想得到有价值的数据,第一步就是要得到这些网页数据,这就需要分析浏览器与服务器之间到底是如何通讯的,然后模拟浏览器来与服务器通讯,从而获取数据。当然爬虫不仅限于爬取网页,还可爬取移动设备常用的json数据等等,以及其他格式的二进制数据等等。

爬虫的价值

? 互联网中最宝贵的就是数据了,例如淘宝的商品数据,链家的房源信息,拉钩的招聘信息等等,这些数据就像一座矿山,爬虫就像是挖矿的工具,掌握了爬虫技术,你就成了矿山老板,各网站都在为你免费提供数据。

爬虫的爬取过程

? 分析--模拟请求--解析数据--存储

HTTP请求分析

首先要明确的是:爬虫的核心原理就是模拟浏览器发送HTTP协议来获取服务器上的数据,那么要想服务器接受你的请求,则必须将自己的请求伪装的足够像,这就需要我们去分析浏览器是如何发送的HTTP请求

其次:HTTP协议是基于请求响应模型的,客户端发送请求到服务器,服务器接受请求,处理后返回响应数据,需要关注的重点在于请求数据,只有服务器认为合格合法的请求才会得到服务器的响应。

利用chrome开发者工具来分析请求

chrome浏览器提供强大的开发者工具我们可以利用它来查看浏览器与服务器的整个通讯过程

上图划出了常用的几个操作,如清空请求,保留日志等等,另一个常用操作就是清空cookie信息

打开chrome的设置页面搜索cookie就可以找到清空按钮。

请求流程分析

请求地址

? 浏览器发送的请求URL地址

请求方法

? get 中文需要URL编码,参数跟在地址后面

? post 参数放在body中

请求头

? cookie,需要登录成功才能访问的页面就需要传递cookie,否则则不需要cookie

? user-agent,用户代理,验证客户端的类型

? referer,引用页面,判断是从哪个页面点击过来的

请求体

? 只在post请求时需要关注,通常post请求参数都放在请求体中,例如登录时的用户名和密码

响应头

? location:重定向的目标地址,仅 在状态码为3XX时出现,需要考虑重定向时的方法,参数等。。,浏览器会自动重定向,request模块也会。

? set-cookie:服务器返回的cookie信息,在访问一些隐私页面是需要带上cookie

响应体

? 服务器返回的数据,可能以下几种类型

? HTML格式的静态页面 需要解析获取需要的数据

? json个格式的结构化数据 直接就是纯粹的数据

? 二进制数据 通过文件操作直接写入文件

爬取梨视频

?

request模块的使用

get请求

请求参数

1.参数拼接时中文需要URLEncode,可以使用urllib中的编码函数来完成

from urllib.parse import urlencodeimport requests?params = {"wd":"美女"}# 必须以字典类型传入需要编码的数据 得到拼接收的参数字符串res = urlencode(params,encoding="utf-8")?url = "https://www.baidu.com/s"url = url+"?"+res # 拼接参数?response = requests.get(url)?with open("test.html","wb") as f:    f.write(response.content)

2.也可以直接将请求参数传给get的函数的params参数,get方法会自动完成编码

import requests# 参数字典params = {"wd":"美女"}?url = "https://www.baidu.com/s"# 直接传给params参数response = requests.get(url,params=params)?with open("test.html","wb") as f:    f.write(response.content)

上述的代码无法请求完成的数据 因为百度服务器有限制,必须制定用户代理,user-agent为浏览器才行

添加请求头

import requests?params = {"wd":"美女"}url = "https://www.baidu.com/s"headers = {"user-agent" : ‘Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Mobile Safari/537.36‘}response = requests.get(url,params=params,headers=headers)?with open("test.html","wb") as f:

cookies

可以在headers中直接添加键值对也可以单独使用get方法的cookies参数

url = "https://github.com/yangyuanhu"headers = {    "User-Agent" : ‘Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Mobile Safari/537.36‘,    "Cookie":"_octo=GH1.1.1155792533.1532919557; _ga=GA1.2.1847433334.1534242542; has_recent_activity=1; user_session=Z5AQmC_Wv4wvM-_Nc3Bj0PQn6nITSonDcPkw4GZ1g0jFIqbe; __Host-user_session_same_site=Z5AQmC_Wv4wvM-_Nc3Bj0PQn6nITSonDcPkw4GZ1g0jFIqbe; logged_in=yes; dotcom_user=yangyuanhu; tz=Asia%2FShanghai; _gat=1; _gh_sess=eERwWHk1NVBjOEhIRmxzckcrcWlpVCtUM2hWL0prNlIyNXdTdC9ab0FSZWR5MEZlYW5OVGNoTEdJQUN0K0xkNXVmTEVpK2RRU1VZTUF6NkJHM1JMejNtaVhReXg2M3Vsb0JvcG8vNDNENjNBcXVvcFE4Tmp4SFhpQ3Z3S2ZZZEIwTGNkVW5BR01qVHlCNEFqTnZFcllhN3NwT1VJblZYWElLOGowN3ZaZVpZTFVHQlFtZkh3K1hnclBWalB1Mk1XLS1wNjFjMlBxUHljU2paK2RXU3M5eDB3PT0%3D--8cdf657174d2acac7cc0459da667accc8a2d0f5e",    "Referer": "https://github.com/"}response = requests.get(url,headers=headers)with open("test.html","wb") as f:    f.write(response.content)?# 使用cookies参数  注意需要拆分为单独的键值对#response = requests.get(url,headers=headers,cookies={"_octo":"GH1.1.1155792533.1532919557"})

POST请求

模拟登录流程并爬取github私有页面

原文地址:https://www.cnblogs.com/ouyang99-/p/10313621.html

时间: 2024-11-13 00:29:17

爬虫简介的相关文章

1、爬虫简介与request模块

一 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的利益,而网络爬虫是其中最为常用的一种从网上爬取数据的手段. 网络爬虫,即Web Spider,是一个很形象的名字.如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网

爬虫简介与request模块

一 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的利益,而网络爬虫是其中最为常用的一种从网上爬取数据的手段. 网络爬虫,即Web Spider,是一个很形象的名字.如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网

爬虫简介以及request模块

一 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的利益,而网络爬虫是其中最为常用的一种从网上爬取数据的手段.网络爬虫,即Web Spider,是一个很形象的名字.如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页

一.爬虫简介

目录 一.爬虫简介 1.什么是爬虫 2.http协议格式 3.常见库 4.常用解析语法 5.常见的反爬手段 一.爬虫简介 1.什么是爬虫 一个模仿浏览器行为向服务器发送请求并且获得响应数据的应用程序. 流程:发起请求===>获取数据===>解析数据===>存储数据 常见请求库:requests 常见解析库: 常见存储库:mongodb 常见的抓包工具:网页的network,Fiddler,mitmproxy console控制台: document.charset(查看js的解码方式)

爬虫(一):爬虫简介

1. 爬虫简介 1.1 爬虫是什么? 什么是爬虫,以下是百度百科上的解析: 很多人都将互联网比喻成一张非常大的网,将世界连接起来.如果说互联网是一张网,那么爬虫就像在网上爬的小虫子,通过网页的链接地址来寻找网页,通过特定的搜索算法来确定路线,通常从网站的某一个页面开始,读取该网页的内容,找到该网页中的其他链接地址,然后通过这些链接地址寻找下一个网页,就这样一直循环下去,直到将该网站的所有网页全部抓取为止. 1.2 爬虫原理 发起请求:使用http库向目标站点发起请求,即发送一个RequestRe

爬虫-简介

爬虫的定义 为什么要做爬虫 首先请问:都说现在是"大数据时代",那数据从何而来? 企业产生的用户数据:百度指数.阿里指数.TBI腾讯浏览指数.新浪微博指数 数据平台购买数据:数据堂.国云数据市场.贵阳大数据交易所 政府/机构公开的数据:中华人民共和国国家统计局数据.世界银行公开数据.联合国数据.纳斯达克. 数据管理咨询公司:麦肯锡.埃森哲.艾瑞咨询 爬取网络数据:如果需要的数据市场上没有,或者不愿意购买,那么可以选择招/做一名爬虫工程师,自己动手丰衣足食.拉勾网Python爬虫职位.

Python爬虫从入门到进阶(2)之爬虫简介

1.爬虫入门:使用代码模拟真实用户发送网络请求批量获取数据1).爬虫价值: 1.买卖数据(高端领域特别贵) 2.数据分析(出分析报告) 3.流量 4.阿里指数,百度指数2).合法性:灰色产业政府没有法律规定爬虫是否违法 公司概念:公司让你爬取数据 爬虫是否可以爬所有的东西?不可以,爬虫只能爬取到用户可以访问的数据 爱奇艺视频(vip 用户,非 vip 用户) 付费小说(付费才能爬取) 2.爬虫分类: 1.通用爬虫:使用搜索引擎:百度,360,谷歌... 劣势:目标不明确,返回的内容90%是用户不

第一章 网络爬虫简介

本章将介绍如下主题: 网络爬虫领域介绍 爬虫的合法与非法性 对目标网站进行背景调研 逐步完善一个高级网络爬虫 1.1 网络爬虫的使用场景 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件.  

网络爬虫简介

什么是网络爬虫 为什么要学网络爬虫 网络爬虫的组成 网络爬虫的类型 网络爬虫的工作流程 网络爬虫的爬行策略 网络爬虫的更新策略 扩展:网页分析算法 扩展:GooSeeker 工具 1. 什么是网络爬虫 (1) 网络爬虫又称网络蜘蛛,可以自动化浏览网络中的信息,进行互联网信息的自动检索(2) 搜索引擎会在海量的互联网信息中爬取优质信息并收录,当用户在搜索引擎上检索对应关键词时,会从收录的网页中按照一定的算法或排名规则呈现给用户(3) 大数据也离不开网络爬虫,需要使用网络爬虫去一些比较大型的站点爬取