Python网络爬虫_初识【1】
本次教程是依据个人学习心得与学习记录所做,见证的是我们的成长。
什么是网络爬虫?定义:
Web Crawler:网络爬虫。顾名思义,可以把网络理解成一张网,爬虫就是每天在网上爬来爬去的蜘蛛,因为我们所访问的网页都是互通的,通过跳转,可以访问其他的网络资源,这样,爬虫就可以在网络中爬取我们想要的资源。(所以网络爬虫又被称为网页蜘蛛,网络机器人,在某一社区中。被称为网页追逐者)它可以按照指定的规则即网络爬虫的算法自动地在互联网,网页中抓取网络的信息。
应用:
网络爬虫到处可见,例如浏览器的搜索引擎就附带着爬虫,依靠爬虫,可以快速的在庞大的互联网信息中获取指定的信息。算法对于网络爬虫来说十分重要,不同的算法,所爬取的信息的工作效率和结果也有所不同。
随着互联网的发展,到了信息量爆炸的时代,爬虫所扮演的角色愈加重要。为了提高爬行的工作效率,爬虫需要在单位时间内尽可能多的获取高质量页面,成为了它面临的难题之一。
原理:1.正如爬虫的名字那样,我们所访问的每个网站网页都属于一个节点,而这些节点都是相互联系的,爬虫便可以借助这种关系,从一个网页扩展到很多网页,以此从中抓取我们所需要的数据内容 ...
Python Socket TCP多线程通信【四】
Python Socket TCP多线程通信一.创建客户端连接一.开启多线程通信
前面说到,因为单线程原因,客户端与服务器无法做到自由对话,则需要用到多线程来处理。我们现在的服务端和客户端最多也就是发送消息和接收消息两种行为,所以我们采用双线程。
或许我们可以新建一个Client.py的客户端和Server.py的服务端,代码照搬第一期的。
首先编写客户端代码。导入内置的线程模块,随后调用模块内置函数threading.Thread( ),因为有两个行为(发送消息和接收消息)所以需要定义并启动双线程。
target:与目标函数对接使得目标函数开启一个线程。
args:向目标函数传入一个参数。这里两个线程同时将socket传入,可以使得socket获得两个线程的处理。
.start:启动线程。
1import threading # 导入线程模块
123# 启动多线程(多个线程共用一个Socket)threading.Thread(target=send_msg, args=(Client,)).start()threading.Thread(target=recv_msg, ...
Python Socket TCP单线程通信【三】
一. 前言
前一期的简单通信只是草草的说到了它能够达到通信的效果,但它并不是很灵活,因为它没法自定义客户端要发送的内容,并且只能够发送一次消息至服务器。现在完善一下代码。
二.客户端持续发送与接收
我们在发送消息时,不可能是发送一次就完事了,那就相当于是邮箱,而如果要持续向服务器发送消息,我们就需要用到while循环,循环send( )函数,为了达到自定义编写消息内容,可以将input( )的内容赋值到send( )内。
1234while True: # 发送服务器消息 Contest_server = input() Client.send(Contest_server.encode('utf-8'))
当然了,因为是通信,也不可能是只有一方向另一方发送,应该是彼此之间通信,所以,客户端也可以用到recv( )函数用于接收服务器发送的消息。和上面一样,利用循环语句保持同步。
12345678while True: # 发送服务器消息 Contest_server = input() Client.send(Contes ...
Python Socket TCP简单通信【二】
一.前言
接着上期的介绍,现在我们开始利用现有的代码让客户端对服务器发出请求并完成简单的通信。
二.TCP协议通信流程
在开始这项工作之前,我们认识一下客户端向服务器发送请求并完成连接的一个Socket TCP通信执行流程。
1.‘三次握手’
当客户端向服务器发送连接请求时,两者之前会发送三次文段,也就是我们俗话说的“三次握手”。
它的具体过程是:
客户端主动向服务器发送连接请求(文段1)。
处于监听状态的服务器被动的接收了来自客户端的请求,并将确认的连接请求返回给客户端(文段2)。
最后客户端也将确认的连接请求返回给了服务器(文段3) 表示客户端完成了与服务器的连接。两端建立连接即可进行通信。
2. ‘四次挥手’
当想要断开服务器连接时,也是客户端主动地发出断连请求,两者之前会发送四次文段。这就是我们所说的“四次挥手”。具体过程:
客户端首先向服务器发送离线请求,客户端进入FIN_WAIT1状态(文段1)。
服务器接收到请求后并将确认返回给客户端,服务器进入CLOSE_WAIT状态。收到回应的客户端进入FIN_WAIT2状态 ...
Python Socket TCP初始【一】
Python Socket TCP通信初识一.什么是Socket ?
Socket(套接字):一种独立于协议的网络编程接口,它就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。
我们使用的任何一个网络通信工具都是以Socket为底层编写出来的,如QQ,WeChat,Email,浏览器等。利用Socket我们可以完成很多与网络通信有关的操作。
二.Socket多人聊天
最近突发奇想,想学一下Python的Socket技术,设计一款属于自己的聊天工具。因为最近太闲了,Python的干货也看不下去了,基本上,那些语法基础,函数,类之类的都已经掌握了,现在先想来点新鲜的。2.网上还是有很多关于Python Socket的教程的,我也总结一些,给大家和自己也写一份教程,加深记忆。
三. 利用Python 开发Socket多人聊天1.Socket TCP协议开发
基本上TCP ...