浏览器的请求

url=请求协议(http/https)+网站域名+资源路径+参数

http:超文本传输协议(以明文的形式进行传输),传输效率高,但不安全。

https:由http+ssl(安全套接子层)组成;传输之前数据先加密,之后解密获取内容,传输效率低但安全。

HTTP协议之请求

1请求行

2.请求头(user-Agent:用户代理【对方服务器通过user-Agent知道当前请求资源的是神么网站】)

3.请求体(get 请求没有请求体,post有;get 请求把数据放在url地址中)

post请求常用于登入,注册以及传输大文本时

HTTP协议之响应

1.响应头(set cookie:对方服务通过该字段设置cookie的值到本地)

2.响应体(url地址对应的响应内容)

网络爬虫的逻辑

1.确定起始url

2.发送请求获取响应

3.提取数据

4.保存

5构造下一个url 地址,循环2-5步。(使用retrying,当请求不成功时,重复进行请求)

response.request.url:得到的是发送请求url地址

response.url是resonse响应的url地址

发送get post 请求获取响应;

url="https://i.cnblogs.com"

headers={

}

response=request.get(url,headers=headers)

response=request.post(url,headers=headers,data={请求体字典【键值对格式】})

 获取网页源码内容 的方法;(依次使用三种方式一定可以获取网页的正确内容,当前面一种方式不能获取到时,改用下一种

1)response.content.decode()//把响应的二进制字节流转化为str 类型.默认使用的是utf-8编码

2)response.content.decode("gbk")用指定的编码进行编码

3)response.text  浏览器会以自己猜测的编码形式进行编码

处理cookie相关请求的方法

1)直接放在headers中

2)把cookie放在字典中

3)先发送post请求,带上cookie请求登入

session=request.session()// 实例化session对象

session.post(url,data,headers)// 获取对方保存在本地的cookie内容

session.get(url)  //session会自动带上cookie

数据提取的方法:

json.loads  作用:把json字符串转化为python类型

json.dumps 把python类型转化为json字符串

ensure_ascill 能让页面中的中文字符正确显示为中文

indent: 能够让下一行显示时在下一行的基础上显示空格

xpath:一门从html中提取数据的语言

xpath语法:

1.选择节点(标签)/html/head/meta 表示选中head下的 所有meta标签

2.//双斜线 能够从任一节点开始选择

./a 表示当前节点下的a 标签

3.@的用途

@的作用是取某个节点属性的值

例如://div[@class='box1']/

4.获取文本

/a/text()   表示获取a标签的文本

/a//text()   表示获取a标签下的所有文本(可能不是直接在a标签下)

网络爬虫基础知识(Python实现)的更多相关文章

  1. java网络爬虫基础学习(一)

    刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提 ...

  2. python爬虫-基础入门-python爬虫突破封锁

    python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...

  3. C#网络编程基础知识

    C#网络编程基础知识一 1.IPAddress类 用于表示一个IP地址.IPAddress默认构造函数 public IPAddress(long address);一般不用 其中Parse()方法最 ...

  4. 【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识

    第2章        嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等 ...

  5. java网络爬虫基础学习(三)

    尝试直接请求URL获取资源 豆瓣电影 https://movie.douban.com/explore#!type=movie&tag=%E7%83%AD%E9%97%A8&sort= ...

  6. [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)

    IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...

  7. python网络爬虫,知识储备,简单爬虫的必知必会,【核心】

    知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...

  8. python 爬虫基础知识一

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...

  9. Python爬虫基础知识入门一

    一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网 ...

随机推荐

  1. C# Parallel.Invoke 实现

    Parallel.Invoke应该是Parallel几个方法中最简单的一个了,我们来看看它的实现,为了方法大家理解,我尽量保留源码中的注释: public static class Parallel ...

  2. JSONArray数据转换成java List

    1.后台接收json数组转成封装实体类的List: package no.integrasco.ingentia.news.qaedition; public class Person { priva ...

  3. 使用scp命令在多个Linux系统间进行文件复制

    一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从 ...

  4. [转]jquery异步ajax与服务器通信过程中如何通过then方法链式传递多层数据

    原文:https://www.cnblogs.com/fullstack-yang/p/6115983.html doSubmit: function(){ var dtd = $.Deferred( ...

  5. 一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇3

    一步步教你轻松学朴素贝叶斯深度篇3(白宁超   2018年9月4日14:18:14) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对 ...

  6. np.percentile获取中位数、百分位数

    给定一个递增数组a,求它的中位数. np.percentile(a,50) 中位数就是50%处的数字,也可以获得0%.100%处的数字,0%处的数字就是第一个数字,100%处的数字就是最后一个数字.1 ...

  7. 告别set和get,两大利器轻松搞定model转换

    场景一:一般我们遇到需要新建model,常规做法就是创建一个类,老老实实的定义好model中的所有属性,一般来说属性对应的set方法和get方法都是少不了的,有时候还需要toString甚至equal ...

  8. 如何关闭windows server2012 80端口

    Windows Server禁用本地端口的两种方法 这篇文章主要介绍了Windows Server 2008 禁用本地端口的两种方法,本文讲解了通过Windows防火墙禁用端口.通过IP安全策略禁用端 ...

  9. python 信息同时输出到控制台与文件

    python编程中,往往需要将结果用print等输出,如果希望输出既可以显示到IDE的屏幕上,也能存到文件中(如txt)中,该怎么办呢? 方法1 可通过日志logging模块输出信息到文件或屏幕.但可 ...

  10. 【iCore4 双核心板_ARM】例程三十六:DAC实验——输出直流电压

    实验现象: 用电压表测量PA4引脚有2.0V直流电压输出. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ / ...