Python爬虫学习二------爬虫基本原理

爬虫是什么?爬虫其实就是获取网页的内容经过解析来获得有用数据并将数据存储到数据库中的程序。

基本步骤:

  1.获取网页的内容,通过构造请求给服务器端,让服务器端认为是真正的浏览器在请求,于是返回响应。python有很多请求的库,像urllib,requests库等,个人比较喜欢requests库,很容易上手。

  2.解析获得的数据,可以通过正则表达式,bs4,xpath等解析工具来获得自己想要的数据。

  3.存到数据库,现在最流行的三大数据库,mysql,mongodb,redis都可以通过python相关的库来进行交互。

会话和Cookies?

  什么是会话?什么是Cookies呢?这全都要怪罪于HTTP协议,因为HTTP协议是无状态的协议,因此前后两个请求它并不能够知道是不是同一个用户在发送请求,这就可能会导致重复的传递一些请求。这时候会话和Cookies就帮上大忙了。当用户在执行登录操作后,后端服务器会为该用户创建一个会话,会话中包含一个id来标识这个会话,用户的登录状态以及用户的信息,并且将这一标识id通过Set-Cookie字段返回给客户端,当客户端下一次请求需要登录才能查看的网页时,服务器就会检查客户端发过来的Cookie字段,如果能够通过Cookie字段找到用户相应的会话,就会进一步判断该用户的登录状态。通常网站都会有一个会话超时时间,如果会话过期了,就需要重新登录。

  总结的说,会话是在服务器端存储的信息,而Cookie是在客户端存储的信息,会话的作用就是用来维持用户的登录状态。

代理

  代理的基本原理是什么呢?代理实际上就是指代理服务器,当我们设置了代理服务器的时候,该代理服务器就成为了我们的服务器,而代理服务器本身也成为了客户端去向我们真正请求的服务器发送请求,当代理服务器获得响应后再将响应返回给我们本地的客户端,这样就成功的实现了隐藏我们本地ip的功能。

  为什么要使用代理呢?一些网站在后端处理请求的时候会检测一段时间内同一个ip访问的次数,如果次数达到了一定的值,就会直接拒绝服务,也就是经常说的ip被封了。为了防止这种情况的发生,就需要强大的代理功能来隐藏我们的ip。在使用爬虫爬去数据的时候,如果我们能够不断的更换代理,就会让服务器迷失自己~

  常见的代理设置:使用网上的免费代理或者使用付费的代理服务。

  

原文地址:https://www.cnblogs.com/qianzhaorong/p/9185398.html

时间: 2024-08-27 07:15:05

Python爬虫学习二------爬虫基本原理的相关文章

scrapy 爬虫学习二[中间件的学习]

scrapy源码解析参考连接:https://www.jianshu.com/p/d492adf17312 ,直接看大佬的就行了,这里便就不多说了. 今天要学习的是:Scrapy框架中的download middlerware[下载中间件]用法. 一:官方文档中,对下载中间件的解释如下 下载中间件是介于scrapy的requests/response处理的钩子框架,是用于全局修改scrapy requests和response的一个轻量.底层的系统. 二:使用下载器中间件时必须激活这个中间件,方

python爬虫学习--pixiv爬虫(2)--国际排行榜的图片爬取

之前用面向过程的形式写了一下pixiv爬虫的登录... 觉得还是面向对象好一些... 那就先把登录过程重写一下... class Pixiv_Spider: def __init__(self): self.p_id = '' self.p_pw = '' def Login(self): #处理登录所需要的请求信息 p_login_url = 'https://www.pixiv.net/login.php' data = { #登录所要post的信息 'mode':'login', 'ski

Python 3 Anaconda 下爬虫学习与爬虫实践 (2)

下面研究如何让<html>内容更加“友好”的显示 之前略微接触的prettify能为显示增加换行符,提高可阅读性,用法如下: import requests from bs4 import BeautifulSoup r=requests.get("https://www.baidu.com/") r.encoding=r.apparent_encoding demo=r.text soup=BeautifulSoup(demo,"html.parser"

爬虫学习二

什么是cooker: Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie).Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等. 参数的意义: NAME: cooker的名字 VALURE: cooker的值 Exo

Python Tutorial 学习(二)--Using the Python Interpreter

Using the Python Interpreter 2.1. Invoking the Interpreter The Python interpreter is usually installed as /usr/local/bin/python on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to star

python基础学习-装饰器基本原理

#__author:"Feng Lin" #date: 2018/8/29 #装饰器:在不修改函数的调用方式,但是还是想在原来的函数前后添加功能 #如下:timer 就是一个装饰器函数,支队一个函数有一些装饰作用 #使用闭包是实现装饰器的基本原理 import time # def func(): # time.sleep(0.01) # print("哈哈嘿嘿") # def timer(func): #装饰函数 # def inner(): # start=ti

Python学习之路 (三)爬虫(二)

通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 通用搜索引擎(Search Engine)工作原理 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 第一步:

《Python爬虫学习系列教程》学习笔记

转自:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫感兴趣的童鞋有帮助,如果有机会期待与大家的交流. 一.Python入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫

Python爬虫学习系列教程

Python爬虫学习系列教程 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫感兴趣的童鞋有帮助,如果有机会期待与大家的交流. Python版本:2.7 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库