Python
未读b287d1b6e0bad61174d643199e7e340519a5ff6f3823822d82f8204f2dd22dcf75b6407adea6c9d9cc3ff389a6cb4796d77d962554297568dd336151faec49a9ebbdc334a6c4e91773e3220f4b528af4bd601bff42ae9637cff7c3b20e3978068ed5a60431d61370afb0bae3f228661303436f83e1c1887b187378a5fcef2783f031ce6c6f29b2bf8e9458256cf39b12d4acdb8742fea244ada11c8dfee96cf8f9a8bc59c9e393bd59dea51356c719be000ed190af83be8cce57f0c026d913e8b59a506750dad1e2065a8d7a486c39641f5fe1e99d8c781e45f9cc8e19bffe168596fb33e4ca492089952e4db116ef8e1b92895fbcc6c64de ...
##Beautifulsoup模块 一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Beautiful Soup 3 目前已经停止开发,官网推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4 12345678910111213141516171819#安装 Beautiful Souppip install beautifulsoup4#安装解析器Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml .根据操作系统不同,可以选择下列方法来安装lxml:$ apt-get install Python-lxml$ easy_install lxml$ pip install lxml另一个可供选择的解析器是纯Python实现的 html5lib , html5lib的解析方 ...
Python HTTP库之requests模块 一、介绍 requests 是一个用于发送 HTTP 请求的 Python 库,其 API 比较简洁,使用起来比 urllib 更加便捷(本质是封装了 urllib3)。 注意事项 requests 库发送请求将网页内容下载下来以后,并不会执行 JavaScript 代码,这需要我们自己分析目标站点然后发起新的请求。 在正式学习 requests 前,建议先熟悉 HTTP 协议 安装 1pip3 install requests 常见请求方式 GET 和 POST 是最常用的请求方式。 其他请求方式包括 PUT, DELETE, HEAD, OPTIONS。 12345678910111213141516171819import requests# GET 请求r = requests.get('https://api.github.com/events')# POST 请求r = requests.post('http://httpbin.org/post', data={ ...
下载任意哔哩哔哩视频 一 寻找任意一个视频地址 例如这个: 拿出窗口中的链接:https://www.bilibili.com/video/av76609390,修改源代码中的url即可完成下载 1##由于哔哩哔哩视频音频是分开的,所以下来下来的视频是两个,一个音频,一个视频,要视频和音频合成,可看另一偏博客 二 分析页面 这个地址加载后会有该视频的视频信息和清晰度等信息,我们只需要取出视频和音频的地址,直接下载即可, 下面这两个地址就是一个视频,一个音频,分片下载的 我们用requests模块模拟即可,打开文件不停的发送请求加载数据写入即可 12345678910111213141516171819202122232425262728def download_video(old_video_url, video_url, audio_url, video_name): headers.update({"Referer": old_video_url}) print("开始下载视频:%s" % video_n ...
Python
未读requests 模块 介绍 1234567891011121314151617##介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3)##注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求##安装:pip3 install requests##各种请求方式:常用的就是requests.get()和requests.post()>>> import requests>>> r = requests.get('https://api.github.com/events')>>> r = requests.post('http://httpbin.org/post', data = {'key':'value'})>>> r = requests.p ...
大白话布隆过滤器 不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒…经过“放弃,拿起,放弃,拿起”的无限轮回,应该算是了解了布隆过滤器的核心思想,所以想给大家分享下。 布隆过滤器的应用 我们先来看下布隆过滤器的应用场景,让大家知道神奇的布隆过滤器到底能做什么。 缓存穿透 我们经常会把一部分数据放在Redis等缓存,比如产品详情。这样有查询请求进来,我们可以根据产品Id直接去缓存中取数据,而不用读取数据库,这是提升性能最简单,最普遍,也是最有效的做法。一般的查询请求流程是这样的:先查缓存,有缓存的话直接返回,如果缓存中没有,再去数据库查询,然后再把数据库取出来的数据放入缓存,一切看起来很美好。但是如果现在有大量请求进来,而且都在请求一个不存在的产品Id,会发生什么?既然产品Id都不存在,那么肯定没有缓存,没有缓存,那么大量的请求都怼到数据库,数据库的压力一下子就上来了,还有可能把数据库打死 ...
爬虫是什么 1234567891011121314151617181920212223242526#1、什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。#2、互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则你只能拿U盘去别人的计算机上拷贝数据了。#3、什么是上网?爬虫要做的是什么? 我们所谓的上网便是由用户端计算机发送请求给目标计算机,将目标计算机的数据下载到本地的过程。 #3.1 只不过,用户获取网络数据的方式是: 浏览器提交请求->下载网页代码->解析/渲染成页面。 #3.2 而爬虫程序要做的就是: 模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中 #3.1与3.2的区别在于: 我们的爬虫程序只提取网页代码中对我们有用的数据#4、总结爬虫 #4.1 爬虫的比喻: 如果我 ...
爬虫基本原理 爬虫是什么 爬虫的基本流程 请求与响应 Request Response 总结 请求库之requests,selenium requests模块 selenium模块 解析库之re、beautifulsoup、pyquery 介绍 基本使用 遍历文档树 搜索文档树 修改文档树 总结 存储库之mongodb,redis,mysql 爬虫高性能相关 背景知识 同步、异步、回调机制 高性能 Scrapy框架 介绍 安装 命令行工具 项目结构以及爬虫应用简介 Spiders Selectors Items Item Pipeline Dowloader Middeware Spider Middleware 自定义扩展 settings.py 爬取亚马逊商品信息 分布式爬虫 ...
12345[root@37wan ~]# uptime 12:53:01 up 227 days, 16:33, 1 user, load average: 1.43, 2.16, 2.20 # and [root@37wan ~]# cat /proc/loadavg 1.72 1.89 2.02 1/535 20618 load average 后面三个值代表系统在1分钟、5分钟和15分钟的负载情况,都知道数字越高表示系统负载越大,第一直觉就是这个系统不行了。那么到底多高的负载才算高负载? 我们又如何去判断系统是否已经高负载呢? 什么是load average? load average的就是一定时间内计算机有多少个active_tasks,也就是说是计算机的任务执行队列的长度,cpu计算的队列。 load average多少是正常? 既然load是cpu计算的队列,那就应该和cpu个处理方式和cpu的个数有关系。所以我个人认为应该按系统识别的cpu个数来确定load的临界值,系统识别为8个cpu,那么load为8就是临界点,高于8就属于over load了。 什么叫系统识别 ...
Linux
未读uptime linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息。 **eg: ** 12:55:56 up 227 days, 16:25, 1 user, load average: 1.25, 1.62, 2.04 显示内容说明: 12:55:56 //系统当前时间 up 227 days, 16:25 //主机已运行时间,时间越大,说明你的机器越稳定。 1user //用户连接数,是总连接数而不是用户数 load average // 系统平均负载,统计最近1,5,15分钟的系统平均负载 那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。 如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。 如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。 如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。 1可以被认为是最优的负载值。负载是会随着系统不同改变得。 单CPU系统1-3和SMP系统6-10都是可能接受的。 cat /p ...