python爬虫:socket
python爬虫:socket爬取图片
1.随便打开一个网站:
例如https://www.51miz.com/sucai/?tab=beijing
右键 检查,或者F12
在下面Img部分随便找一张图片
在其header部分找到URL:https://img.51miz.com/Index/2019/12/13/20191213231527_Element_7942812.jpg
和请求的方法:GET
那么报文的格式就是:
GET+空格+com后面的部分+空格+HTTP/1.1(或1.0)+\r\n+Host:+域名+\r\n\r\n
'GET /Index/2019/12/13/20191213231527_Element_7942812.jpg HTTP/1.1\r\nHost: img.51miz.com\r\n\r\n'
# -*- coding:utf-8 -*-
import socket
import re
import ssl
'''
socket: 套接字
应用层--接口--运输层
IP + port
OSI七层模型
'''
'''
200成功
301 重定向
403 禁止访问
404 页面不存在
503 服务器错误'''# 服务端
def func():# 创建服务器server = socket.socket()# 绑定IP 端口server.bind(('0.0.0.0', 8080))# 监听server.listen(5) # 连接数# 接收conn, addr = server.accept()# 接收数据data = conn.recv(1024) # 获取1024代销的文件print(data)# 客户端
def func1():client = socket.socket()# 连接百度服务器client.connect(('www.baidu.com', 80))# 构造报文data = b'GET / HTTP/1.0\r\nHost:www.baidu.com\r\n\r\n' # HTTP# 发送报文client.send(data)# 接受res = client.recv(1024)temp = b''while res:temp += resres = client.recv(4096)# print(temp) # 请求头+响应报文# 提取正文print(re.findall(b'\r\n\r\n(.*)', temp, re.S)[0])'''
socket下载一张图片1.找到图片的来源.图片一定是从哪个服务器下载回来的2.img选项3.查找图片的渲染效果 Preview4.URL : https://img.51miz.com/Index/2019/12/13/20191213231527_Element_7942812.jpg
'''# client = socket.socket() #http协议
# HTTPS = HTTP + SSL/TLS
client = ssl.wrap_socket(socket.socket()) # https协议
# img URL : https://
# 构造报文
data = b'GET /Index/2019/12/13/20191213231527_Element_7942812.jpg HTTP/1.1\r\nHost: img.51miz.com\r\n\r\n'
# 请求服务器
client.connect(('img.51miz.com', 443))
# 发送报文
client.send(data)
# 接受图片的数据
# 正文 \r\n\r\n
img_first_data = client.recv(1024) # 第一次,主要是请求头,但有一些是图片数据的内容
length = int(re.findall(b'Content-Length: (.*?)\r\n', img_first_data, re.S)[0])
img_data = b'' # 图片数据保存
img_data += re.findall(b'\r\n\r\n(.*)', img_first_data, re.S)[0]
while True:temp = client.recv(1024)if temp:img_data += tempelse:breakif len(img_data) >= length: # 数据是否接受完成break
print(len(img_data), length) # 验证
# 写文件
with open('test.jpg', 'wb') as f:f.write(img_data)
成功
python爬虫:socket相关推荐
- Python使用socket读取网页源代码实现简单爬虫程序
功能描述: 创建套接字,向目标网站HTTP端口80或HTTPS端口443发送请求,获取指定网页的源代码,实现一个简单的网络爬虫程序. 参考代码: 运行结果: 温馨提示 关注本公众号"Pyth ...
- 玩转 Python 爬虫,需要先知道这些
作者 | 叶庭云 来源 | 修炼Python 头图 | 下载于视觉中国 爬虫基本原理 1. URI 和 URL URI 的全称为 Uniform Resource Identifier,即统一资源标志 ...
- python爬虫入门教程--优雅的HTTP库requests(二)
requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive.连接池.Cookie持久化.内容自动解压.HTTP代理.SSL认证等很多特性,下面这篇文章主要给大家介绍 ...
- python爬虫入门教程--快速理解HTTP协议(一)
http协议是互联网里面最重要,最基础的协议之一,我们的爬虫需要经常和http协议打交道.下面这篇文章主要给大家介绍了关于python爬虫入门之快速理解HTTP协议的相关资料,文中介绍的非常详细,需要 ...
- python爬虫 - Urllib库及cookie的使用
lz提示一点,python3中urllib包括了py2中的urllib+urllib2.[python2和python3的区别.转换及共存 - urllib] 怎样扒网页? 其实就是根据URL来获取它 ...
- python爬虫入门-python爬虫入门,8分钟就够了,最简单的基础教学!
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
- python爬虫原理-python学习之python爬虫原理
原标题:python学习之python爬虫原理 今天我们要向大家详细解说python爬虫原理,什么是python爬虫,python爬虫工作的基本流程是什么等内容,希望对这正在进行python爬虫学习的 ...
- python常用命令汇总-Python爬虫框架Scrapy常用命令总结
本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...
- python爬虫原理-python爬虫原理详细讲解
原标题:python爬虫原理详细讲解 一 .爬虫是什么 1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. 2.互联网建立的目的?互联网的 ...
最新文章
- 【转】statfs获得硬盘使用情况 模拟linux命令 df
- Ubuntu搭建Spark运行环境
- SpringBoot多线程环境下,解决多个定时器冲突问题
- 通过蜜罐技术获取攻击者手机号、微信号【网络安全】
- SecurityUtil
- flex内根据id(string)获取对象
- #{}与${}的区别
- mysql innodb_data_file_path_MySQL修改innodb_data_file_path参数的一些注意事项
- 【华为云技术分享】昇腾AI处理器软件栈--总览
- 微信小程序云开发用户身份登录_你必须要掌握的微信小程序云开发
- python视频教程-中谷python中文视频教程(全38集)
- python读取组合惯导数据,并进行坐标转换到北东天、utm坐标系
- python xlwt修改excel_通过Python模块xlwt更改xls文件中的默认分页符
- HTTP基础知识你知道吗?
- 用ArcGIS对图像进行地理配准
- Ubuntu:Gparted,linux 的pqmagic分区魔术师
- 去不去 Google ?Ex-Googler 讲述他的职业选择
- 等额本息和等额本金实现步骤
- 地方征信平台第2讲:河北省征信
- ANSYS有限元仿真分析:边界非线性 (接触Contact)
热门文章
- 数学建模 # 论文撰写技巧
- 2021年京东Android岗面试必问,高级面试题+解析
- ue4 Curvature材质
- 插件 iOS开发之微信自动抢红包功能
- 大数据社区研讨会 (第一届)
- 姓名学软件测试机,App Store 上的“姓名学测算丶 三才五格姓名测试取名大师”...
- 电脑显示器桌面最佳颜色对眼睛最好的最科学的
- 创维电视安装第三方软件
- Java 并发编程中的死锁 ( Kotlin 语言讲解)
- 以太网OAM和CFM的基本概念、配置和应用