自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 爬虫入门 request和response

例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。- `400~499`:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。# # 通过requests发送get请求,url必须是字符串,返回值就是服务器的响应对象。

2024-07-19 23:05:01 272

原创 ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘ module is compiled with

模块的OpenSSL版本不兼容导致的。urlib3 v2.0版本只支持OpenSSL 1.1.1及以上版本,而你的ssI模块编译时使用的是OpenSSL 1.1.0h版本。1.更新OpenSSL版本:你可以尝试,更新你的ss!模块所使用的OpenSSL版本到1.1.1或更高版本。你可以通过升级你的操作系统或手动编译安装最新版本的OpenSSL来实现。3.使用其他HTTP库:如果以上两种方法都无法解决问题,你可以考虑使用其他与你的ss|模块兼容的HTTP库,例如requests库。

2024-07-19 21:00:37 97

原创 jQuery:jq操作html属性;jq修改css样式;jq事件;jq动画

/ b1.addClass('box')//给这个元素添加一个class值,相当于js中的className。//如果通过jq选择器选中元素,然后再用下标取值,那么得到的是一个js的对象,或者叫他element对象。//直接获取,得到的也是一个类似于列表的内容,因为class是可以重复的,也可以通过下标指定获取某一个。//虽然jq本质上就是js,但是jq的方法只能通过jq对象来调用,js对象只能调用js方法。//jq对象转换成element对象,直接通过下标取值,得到的就是一个element对象。

2024-07-14 18:35:32 677

原创 JavaScript入门题目:通过修改属性和属性值来修改图片样式

设置属性

2024-07-12 14:13:53 186

原创 JavaScript进阶

/js中定义函数使用function关键字,后面跟上函数名,再加上小括号,括号内是函数的参数,后面再跟上大括号,大括号内是函数要执行的代码。// var a = new String('abc')//这么写就相当于实例化了一个字符串对象,他就不再是普通的原始类型了。// location.href = 'https://www.baidu.com/'//直接在当前页面跳转。open('https://www.baidu.com/')//打开一个新的标签页。//次方,2,3就是2的3次方。

2024-07-12 13:30:50 1057

原创 JavaScript提升

/所有的基本数值运算,比如加减乘除,如果参与运算的双方分别是字符串和数字,那么在执行加法运算的时候,会将数字当成字符串来使用,得到的是字符串拼接的结果,其他的都会将字符串当成数字来使用,得到正常的数值运算结果,但是这里说的字符串,它的内容都必须是数字值。//如果case后面的语句中,没有break的话,那么他会接着往下执行,比如一开始选择执行的是case2,但是case2后面没有break,而且case2下面还有别的case或者default,那么他们也会跟着执行。//不会报错,只是得到一个空值。

2024-07-04 16:46:11 559

原创 JavaScript入门

js介绍

2024-07-03 12:14:06 835

原创 css基本操作,简单选择器,复杂选择器

<title>css基本使用</title><style>/*这样写代表选中了所有的p标签*/p{</style><link rel="stylesheet" href="css基本使用.css">

2024-06-05 22:11:32 735

原创 HTML基础,内联元素和块级元素,表格,表单

html注释写法:<!--注释的内容--> 在浏览器中看不到,只能在代码中看到注释的内容。意义:1.把暂时不用的代码注释起来,方便以后使用。2.对开发人员进行提示。快捷添加注释:ctrl+/--html是用来描述网页的一种语言,中文是超文本标记语言html不是编程语言,是标记语言标记语言的标记,实际上指的是一套标记标签html使用标记标签来描述网页html文档包含了html标签以及文本内容html文档,也可以叫做web页面,或者叫网页。

2024-05-28 22:21:12 585

原创 协程,greenlet使用,gevent实现异步应用

2,使用基于gevent的高效协程自动切换,不需要我们使用switch去切换。3,只在遇到阻塞的时候切换,没有轮询的开销,也没有线程的开销。3.缺点:协程的本质是单线程下,无法利用多核,可以是一个程序开启多个进程,每个进程内开启多个线程,每个线程内开启协程 ,协程指的是单整个线程个线程,因而一旦协程出现阻塞,将会阻塞。2.优点:协程的切换开销更小,属于程序级别的切换,操作系统完全感知不到,因而更加轻量级 ,单线程内就可以实现并发的效果,最大限度地利用cpu。1.协程概念:是单线程下的并发,又称微线程。

2024-05-26 15:46:08 892

原创 进程池和线程池

self.q.put((func, args, kwargs)) # put中只能放一个参数 所以这三个作为一个参数放入。self.q.put((func,args,kwargs)) #put中只能放一个参数 所以这三个作为一个参数放入。func,args,kwargs = self.q.get() # 拆包。func, args, kwargs = self.q.get()#拆包。func(*args, **kwargs) # 执行任务。func(*args,**kwargs)#执行任务。

2024-05-26 13:44:01 1016

原创 并发通信和消费者生产模型

列表空间在修改里面数据的时候 可以当做列表使用 添加数据只能使用append,extend,insert这几个方法添加。# lock.acquire() #加锁 作用就是确保被锁住的代码,能从头到尾由一个线程执行。print(q.get(i))#在队列已经空了的情况下,还要get 就会产生阻塞。q.put(i) #在队列已经满了的情况下 如果还要put 就会产生阻塞。# 添加数据和列表空间一样,不能直接添加,要调用方法。# lock.release()#解锁。# 在缓冲区开辟列表空间。

2024-05-18 14:06:24 457

原创 IO多路复用 复用器与epoll

非阻塞套接字需要自身遍历每个对等连接套接字,并且每次都是进行的io操作,复用器不需要进行大量的io操作,复用器会告诉你哪个对等连接套接字有数据过来,然后再去处理即可。epoll是一个惰性事件回调,即回调国产车是用户自己去调用的,操作系统只是起到通知的作用。服务器端采用单线程通过select/poll/epoll等系统调用获取fd列表,遍历有事件的fd进行accept/recv/send,使其能支持更多的并发连接请求。将查看的过程由主动的查询,变成交给复用器完成,这样能够更加节省系统资源,并且性能更好。

2024-03-28 22:50:54 264

原创 pycharm远程连接Ubuntu服务器失败方法:Can‘t run remote python interpreter问题解决方法

出现连接问题可能会有以下几种情况:第一种情况:首先应检查本地和服务器之间的网络是否连通,如果

2024-03-27 17:39:21 353

原创 循环语句和序列类型

1.python中,字符串,列表,元组都是属于序列类型,可以从左到右取值,搭配括号,加下标/索引。for循环可将迭代对象里面的元素依次取出赋值给循环变量,然后执行循环语句,元素取出,循环结束。# print(li[0:100]) # 超过长度 不会报错 会取出所有数据。# print('这是我的第'+str(i)+'次循环')# print(li[2][1]) # 第二个索引中的第一个下标。元组的操作,我们可以先把元组转成列表操作完了,再转回元组即可。# # 列表和列表能够直接相加,得到一个新的列表。

2023-11-05 19:00:28 33

原创 Python条件语句

print('or左右两边的条件,如果有一个是真的,那么当前的判断则为真')# print('and左右两边的条件,如果都是真的,那么当前的判断则为真')# print('not 会让原本假的情况变为真的,原本真的条件变为假的')# print('not 会让原本假的情况变为真的,原本真的条件变为假的')# print('and左右两边,如果有一边条件为假,则为假')# print('or左右两边,如果两个条件都是假的,则为假')

2023-10-27 12:42:19 406 1

原创 Python 基本概念和基本数据类型

print(' {} {} {}‘.format(s,t,r)) #结果为 good man!print('%s %s %s ' % (s,t,r) #结果为 good man!print(' * '.join([s,t,r]) #结果为 good*man*!print(' '.join([s,t,r]) #结果为 good man!print(f'{s} {t} {r}') #结果为 good man!print(s+" "+t+" "+r) #结果为good man!

2023-10-25 22:22:57 48

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除