自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 为什么越来越多用 Rust 开发的库?

Rust 正在逐步取代 C 语言成为 Python 的高性能后端支撑。文章介绍了 Rust 相比 C 的优势所在,介绍了用 Rust 开发的一些知名的 Python 库

2024-02-28 11:31:17 1010

原创 Postgres与DynamoDB:选择哪个数据库

在本文中,我将比较Postgres和DynamoDB。我将描述如何使用它们,解释它们的区别,并帮助您决定为Python应用程序选择哪一个

2024-02-02 18:30:53 1161

原创 在人工智能时代,Django + 简单的 HTML + Whisper + mixtral-8x7b-instruct + SQLite 实现了一个 TODO应用

在人工智能时代,TODO 应用会是什么样子的?作者用 Django + 简单的 HTML + Whisper + mixtral-8x7b-instruct + SQLite 实现了一个 TODO 项目,值得借鉴学习!

2024-01-16 15:37:59 1040

原创 python自带队列queue使用生产者消费者多线程使用

生产者消费者代码示例:import timefrom queue import Queuefrom threading import Threadq = Queue(maxsize=3)def consumer(): print('消费者线程启动') while True: print('开始消费',q.get()) time.sleep(2) q.task_done()def size(): while not

2021-11-11 17:26:15 780

原创 使用Python包Vaex读入并分析100G数据

许多组织都在尝试收集和利用尽可能多的数据,以改善其经营方式,增加收入和提升影响力。因此,数据科学家面对50GB甚至500GB大小的数据集情况变得越来越普遍。不过,这类数据集使用起来不太容易。它们足够小,可以装入日常笔记本电脑的硬盘驱动器中,但同时大到无法装入RAM,导致它们已经很难打开和检查,更不用说探索或分析了。处理此类数据集时,通常采用3种策略。第一种是对数据进行二次采样,但缺点很明显:你可能因为忽视相关部分数据而错过关键洞察,甚至更糟的是,这会误解了数据所阐释的含义。第二种策略是使用分布式计算

2021-01-07 10:02:52 1257

原创 如何正确移除Selenium中的 window.navigator.webdriver

在《一日一技:如何正确移除Selenium中window.navigator.webdriver的值》一文中,我们介绍了在当时能够正确从Selenium启动的Chrome浏览器中移除window.navigator.webdriver的方法。后来时过境迁,Chrome升级了版本,导致当时的方法已经失效。如下图所示:针对最新版本的Chrome,我们应该如何正确隐藏这个参数呢?在那篇文章里面,我骂了一种掩耳盗铃的方式:打开网页,然后通过执行如下 JavaScript 语句来隐藏window.navig

2020-12-08 11:00:28 648

原创 浏览器特征 最新版 如何正确移除 Pyppeteer 中的window.navigator.webdriver

大家阅读 Selenium 版的文章,应该看到我们的原理是通过 CDP 执行一段 JavaScript 代码。这段代码中有一个关键词叫做addScriptToEvaluateOnNewDocument。表示添加一段脚本,在打开新文档时执行。我们记住这个关键词EvaluateOnNewDocument。现在大家打开 Pyppeteer 的官方 API[1],搜索evaluateOnNewDocument可以看到原来 Pyppeteer 也是支持这个功能的。这样一来文件就非常简单了,我们在 Pyppetee

2020-12-08 10:54:17 325

原创 六种用JavaScript检测出当前浏览器是否是无头浏览器( selenium headless browser)

User agent先介绍使用做最常见的一种判断浏览器种类的方法,检查User agent。在linux计算机里Chrome version 59无头浏览器的User agent值是:“Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/59.0.3071.115 Safari/537.36”于是,我们可以这样检测是否是无头Chrome浏览器if (/HeadlessChr

2020-11-04 17:23:34 1636

原创 时间格式随心转换之 dateparser

特性主要特点支持几乎所有现有的日期格式:绝对日期、相对日期(“两周前”或“明天”)、时间戳等。支持200多种语言环境。语言自动检测通过设置可自定义的行为。支持非公历系统。支持带时区缩写或UTC偏移量的日期(“2015年8月14日东部时间”,“2013年7月21日10:15 pm+0500”…)在较长的文本中搜索日期轻松使用>>> import dateparser>>> dateparser.parse('Fri,

2020-11-03 13:49:30 1600

原创 普通爬虫request的请求和scrapy框架的部分区别

requsts库直接请求默认请求头{'host': '47.102.141.217:8000', 'user-agent': 'python-requests/2.23.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive'}scrapy框架自带的请求头{'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*

2020-10-30 15:37:20 664

原创 Puppeteer在工作中是如何伪装自己的(爬虫与反爬虫)

为了更好保护我们的数据与程序安全.今天就介绍一下,如何检测访问我们的web程序是否为无头浏览器, 以及他们的一些反检测的方法.Webdriver检测一般来说,如果是无头浏览器模式下, navigator.webdriver 会返回 true.检测方式最简单的检测方式:if (navigator.webdriver) { // 针对无头浏览器的操作}使用defineProperty删除webdriver后如何检测如果对方使用以下方式删除了webdriver属性,其实还是有办法检测的

2020-10-23 11:39:54 1153

原创 如何改造 Scrapy 从而实现多网站大规模爬取?

Scrapy 框架默认是用来开发定向爬虫的。一般情况下,在 spiders 文件夹下面的一个.py 文件对应了一个网站的爬取。但还有另外一种爬虫,它不会拘泥于提取页面上的特定文字,而是关注如何并行爬取非常多的网站。这种爬虫可以实现大规模的爬取。这种爬虫,一般是从若干个种子网址开始爬。进入每个网址后,把该页面的所有网址作为新的种子网址继续爬取,源源不断,生生不息。但爬到以后,一般直接把整个页面的源代码保存下来,通过 Kafka 或者其他组件传给另外的服务进行解析。为了让 Scrapy 适配这种通用的解析逻

2020-10-17 11:40:42 334

原创 linux 统计查看目录下文件个数

统计某文件夹下文件的个数ls -l |grep “^-”|wc -l统计某文件夹下目录的个数ls -l |grep “^d”|wc -l统计文件夹下文件的个数,包括子文件夹里的ls -lR|grep “^-”|wc -l

2020-09-03 15:54:14 125

转载 Linux centos7中安装python3

1.安装相应的编译工具在root用户下(不要用普通用户,麻烦),全部复制粘贴过去,一次性安装即可.yum -y groupinstall "Development tools"yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-develyum install -y lib

2020-08-25 14:36:50 185

原创 实现 JavaScript 哈希算法 包含 md5, sha1 sha256

在解ob混淆时 发现其中作者实现的几种哈希算法,觉得写的不错,遂拿来分享给大家MD5算法function hash_md5(_0x5be8e2) { function _0x3cf213(_0x5cf6ec, _0x3082d4) { return _0x5cf6ec << _0x3082d4 | _0x5cf6ec >>> 32 - _0x3082d4; } function _0xddae70(_0x4b1946, _0x17d389) {

2020-08-11 18:21:42 1620 1

原创 提速72倍,在Python里面调用Golang函数

我们知道,在涉及到大量 CPU 计算的时候,Python 的运行效率可能不如其他语言。在之前的一篇文章:一日一技:立竿见影地把你的 Python 代码提速7倍中,我们讲到了如何通过把 Python 代码编译成 C 语言代码来提高代码的运行速度。今天,我们不用 C 语言,而用 Go 语言。并且,我们这次不是做转换,而是直接用 Python 调用 Go 语言写的代码。今天的文章内容需要使用 Linux 和 macOS 系统实现。或者你也可以使用 Windows 10自带的 WSL2 Linux子系统。今天我

2020-07-19 11:27:50 332

转载 在Scrapy中如何使用aiohttp

当我们从一些代理 IP 供应商购买代理 IP 时,他们可能是提供一个网址供我们查询当前可用的代理 IP。我们周期性访问这个网址,拿到最新的 IP,再分给爬虫使用。最正确的做法,是单独有一个代理池程序,它负责请求这个网址,获取所有的代理IP,然后维护到一个池子里面。爬虫只需要从这个池子里面拿就可以了。但有时候,因为某些原因,我们可能暂时无法或者暂时没有时间开发代理池程序,于是不得不直接让爬虫去请求代理 IP 供应商提供的网址获取代理IP。这个时候我们就面临了一个问题——爬虫应该怎么去请求代..

2020-07-19 11:03:26 792

原创 总有一款适合你 酷炫Python运行进度条汇总

本文介绍了目前6种比较常用的进度条,让大家都能直观地看到脚本运行最新的进展情况1.普通进度条 2.带时间进度条 3.tpdm进度条 4.progress进度条 5.alive_progress进度条 6.可视化进度条 7.进度条?在代码迭代运行中可以自己进行统计计算,并使用格式化字符串输出代码运行进度import sysimport timedef progress_bar(): for i in range(1, 101): ..

2020-07-17 09:57:08 470

原创 ubuntu16.04自带python2.7和python3.5, 若需安装python 3.6

直接到python官网,下载tgz文件。官网下载安装包wget http://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgztar -xvzf Python-3.6.4.tgzcd Python-3.6.4/./configure --prefix=/usr/bin/python3.6 :Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure–help输出详细的选项列表。其中,prefix选项是配

2020-06-30 14:28:01 401

原创 scrapy 爬虫框架无法翻页的问题

例: for i in range(5,166): next_url="""http://www.xxx_{}.com""".format(i) yield scrapy.Request( url=next_url, callback=self.parse, )上面的代码是无法翻页的,因为

2020-06-28 18:00:38 1079

原创 python爬虫scrapy数据增量式爬取

一、根据url判断# -*- coding: utf-8 -*-import scrapyfrom redis import Redisfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom increment1.items import Increment1Item"""爬取过的数据跳过1、通过url判断2、通过数据指纹判断"""class F

2020-06-28 11:08:54 516

原创 Python头像动漫化,快来生成一个自己的动漫头像吧

一、前言很多时候我们都会为头像发愁,像我这种万年不换头像的咸鱼从来没有这种烦恼。但是吧,有个个性化的头像还是非常有趣的,因为这个抠鼻屎的头像除了抠鼻屎这点,其它都很符合本人的气质,所以已经够用了。但是我还是打算把这个小技巧给大家分享。二、效果展示在我多次测试后,发现女生头像的生成还是比较不错的,而且最好是正面照。而男生动漫头像的生成就有点差强人意了,大家可以自己试试,下面我们看看我用有村大妹子生成的两张图片,我们先看第一张:接下来是第二张,我用的是垫底辣妹中的形象:三、实现对于我这

2020-05-29 16:43:01 1379

原创 websocket与爬虫

WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。

2020-05-16 23:46:49 524

原创 爬虫中的去重处理方法详解

去重实现的基本原理根据给定的判断依据和给定的去重容器,将原始数据逐一进行判断,判断去重容器中是否有该数据。如果没有那就把该数据对应的判断依据添加去重容器中,同时标记该数据是不重复数据;如果有就不添加,同时标记该数据是重复数据。判断依据(原始数据、原始数据特征值)去重容器(存储判断数据) set()根据原始数据进行去重判断根据原始数据的特征值进行去重判断...

2020-03-31 22:43:43 1847

原创 gerapy框架的安装使用

一,gerapy框架Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行更直观地查看爬虫状态更实时地查看爬取结果更简单地实现项目部署更...

2020-03-26 21:17:48 313

原创 scrapy-redis多台机器部署,但只有一台可执行

问题描述使用scrapy-redis进行分布式抓取时,遇到了一个很奇怪的问题,有俩台机器,Windows电脑A,和Ubuntu电脑B,redis server部署在 Windows电脑A上,在电脑A,B启动爬虫后,俩只爬虫都进入监听状态,在redis中进行 url的lpush操作,奇怪的事情发生了,电脑A,或者电脑B中只有一台电脑能监听到 redis,但是具体哪个能够监听到这个很随机,有时是电脑...

2020-03-25 02:16:34 619 1

原创 python-mysql 交互 mongodb,redis连接python

MySQLclass sqlxxx(object): def __init__(self): self.header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ...

2020-03-23 23:14:56 98

原创 情人节礼物:抖音表白程序Python版 之无法拒绝的爱附完整源代码

效果图如下:原理:永远无法点击到“算了吧”这个选项,并且也无法关闭程序(当然你可以直接杀死进程),只有点击了“好呀”这个选项才能点击关闭部分代码:runlov.pyimport sysimport cfgimport randomimport pygamefrom tkinter import Tk, messagebox'''Function: 按钮类Initial ...

2020-03-21 22:33:23 9902 22

原创 趣味python之print做会动的皮卡丘

试试用print来画出皮卡丘并且让他动起来也作为小白学习python的一个入门小项目吧先看看结果图:首先,我们要有一个皮卡丘~print(' へ     /|')print('  /\7    ∠_/')print('  / │   / /')print(' │ Z _,< /   /`ヽ')print(' │     ヽ   /  〉')print('  Y     ` ...

2020-03-20 15:00:45 2018

原创 python一行代码画出爱心教你花式秀恩爱

print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))

2020-03-20 12:38:07 2299

原创 python爬虫Scrapy框架实现的登录网站之三种方法

一、使用cookies登录网站import scrapyclass LoginSpider(scrapy.Spider): name = 'login' allowed_domains = ['xxx.com'] start_urls = ['https://www.xxx.com/xx/'] cookies = "" def start_requests(self): ...

2020-03-16 00:12:34 157

原创 Linux查看内存使用情况

Linux查看内存使用情况:df -h 查看磁盘使用情况free:查看内存实际使用情况totalusedfree*****shared*****bufferscachedMem:*393494829981369368120*********52892******1397480-/+ buffers/cache: 15477642387184Swap:00*********0查看/pr...

2020-03-15 21:31:32 135

原创 Docker 中配置MySQL容器

docker 中下载 mysqldocker pull mysql#启动docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql -d mysql#进入容器docker exec -it mysql bash#登录mysqlmysql -u root -pALTER USER ‘root’@‘localhos...

2020-03-15 21:20:34 193

原创 pycharm创建配置虚拟环境

pycharm配置虚拟环境的前提是已经创建好了 虚拟环境

2020-03-02 14:39:32 380

空空如也

空空如也

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

TA关注的人

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