- 博客(70)
- 资源 (6)
- 问答 (3)
- 收藏
- 关注
原创 python与pycharm如何设置文件夹为源代码根目录
相信大家遇到过下面这种情况当我们在当前项目下引入了其它项目的代码,这是其它项目的包的导入路径是不用于当前项目的,这样导致项目无法正常起来,但是我们又不可能一个个文件去处理,这时可以用下面的方式解决。
2024-04-22 16:39:00 244
原创 Scrapy与分布式开发:MongoDB安装与快速入门
MongoDB 是一个面向文档的数据库系统,使用 BSON(Binary JSON)格式存储数据,提供了高性能、高可用性和易扩展性。它专为 Web 应用和大数据场景设计,通过简单的数据模型、强大的查询功能和灵活的扩展性,成为现代应用开发的热门选择。
2024-03-09 11:36:18 824
原创 Scrapy与分布式开发(2.8):布隆过滤器原理及应用
**布隆过滤器(Bloom Filter)** 是一种空间效率极高的概率型数据结构,用于测试一个元素是否在一个集合中。它的优点是空间效率和查询时间都远超过一般的算法,缺点是有一定的误识别率和删除困难。
2024-03-05 16:14:54 864
原创 Scrapy与分布式开发(3):Scrapy核心组件与运行机制
Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架。它使用Python语言编写,并基于异步网络框架Twisted来实现高性能的爬虫。Scrapy最初是为了页面抓取(更确切地说是网络抓取)而设计的,但它也可以用于获取API返回的数据或通用的网络爬虫。
2024-03-05 10:15:42 1278
原创 Scrapy与分布式开发(2.4):bs4+css基本指令和提取方法详解
CSS选择器是网页开发中不可或缺的工具,它们让我们能够精确地定位和选择HTML文档中的元素。在爬虫领域多用于从网页中提取和解析数据。本教程将结合网上教程,提供一份详细的CSS选择器使用指南,并深入探讨更多的指令和API。
2024-03-04 17:11:44 948
原创 Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解
XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它允许用户通过简单的路径表达式在XML文档中进行导航。XPath不仅适用于XML,还常用于处理HTML文档。
2024-03-04 16:11:27 1108
原创 Scrapy与分布式开发(2.6):谈谈常用采集策略与应用场景
一个好的采集策略能够提高采集效率,在有限资源下带来更好的适应性和灵活性,从而提高采集质量。
2024-02-29 10:00:00 32
原创 Scrapy与分布式开发:框架原生去重机制源码解析与不足分析
在网络爬虫和数据采集领域,去重机制是一个至关重要的环节。随着互联网的迅速发展,数据量呈爆炸式增长,如何在海量数据中高效地筛选出有价值且唯一的信息,成为了一个亟待解决的问题。去重机制正是为了解决这一问题而诞生的。
2024-02-28 16:57:04 357
原创 Scrapy与分布式开发(2.5):自动化工具playwright
Playwright 是一个无头浏览器测试库,它允许你使用 Python 脚本控制浏览器自动化,执行各种浏览器操作,如点击、填写表单、导航至页面等。Playwright 支持 Chromium (包括 Chrome 和 Edge)、Firefox 和 Webkit (包括 Safari) 这三种主流的浏览器引擎。与 Selenium 类似,Playwright 同样可以模拟用户行为,但它提供了更简洁的 API 和更少的配置。
2024-02-28 10:41:58 94
原创 Scrapy与分布式开发(1.2):开发环境搭建
Anaconda是一个流行的Python数据科学平台,它包含了许多用于数据分析和科学计算的软件包。Anaconda使用conda作为其包管理和环境管理系统。也可以在进入项目后,点击右下角进入环境选择界面,同时支持创建新环境。安装完成后,打开pycharm,新建项目。当本机安装有python环境时会自动引入。下载,下载后按照以下流程图片安装即可。,下载成功后根据以下流程图片安装即可。官网下载太慢,我们通过。
2024-02-28 09:51:23 32
原创 Scrapy与分布式开发(2.9):pyexecjs
`pyexecjs`是一个Python模块,它允许你在Python环境中执行JavaScript代码。它提供了一个简单而强大的接口,使得Python和JavaScript之间的交互变得容易。通过`pyexecjs`,你可以调用JavaScript引擎来执行JavaScript代码,并将结果返回给Python。
2024-02-27 17:27:46 40
原创 Scrapy与分布式开发(2.2):正则表达式
正则表达式是一种强大的文本处理工具,它使用特定的模式来搜索、匹配和替换文本。Python的`re`模块(正则表达式模块)提供了正则表达式匹配操作的所有功能。
2024-02-27 17:05:03 184
原创 Scrapy与分布式开发(2.1.3):python常用网络请求库urllib3
urllib3 是一个 Python 库,用于发送 HTTP 请求。它是 urllib 和 urllib2 的后续版本,并提供了更高级的功能和更好的性能。urllib3 支持 HTTP/1.1 和 HTTP/2 协议,并具有连接池、自动重试、文件上传/下载等特性。
2024-02-27 16:45:21 25
原创 Scrapy与分布式开发(2.1.2):python常用网络请求库httpx
`httpx` 是一个用于发送 HTTP 请求的 Python 库,它提供了简单易用的 API,支持同步和异步请求,并且具有出色的性能和灵活性。`httpx` 是 `requests` 的一个现代替代品,它使用 `httpcore` 作为底层传输层,支持 HTTP/1.1 和 HTTP/2 协议。
2024-02-27 16:34:36 450
原创 Scrapy与分布式开发(2.1.1):python常用网络请求库requests
`requests`是Python中一个非常流行且功能强大的HTTP客户端库。它允许你使用Python语言发送所有类型的HTTP请求,如GET、POST、PUT、DELETE等。`requests`模块基于urllib3开发,但比urllib3更加简单易用。它提供了丰富的API,使得发送HTTP请求和处理响应变得轻而易举。
2024-02-27 16:17:30 28
原创 Scrapy与分布式开发(1.1):课程导学
在这个专栏中,我们将一起探索Scrapy框架的魅力,以及如何通过Scrapy-Redis实现分布式爬虫的开发。
2024-02-27 15:13:03 837
原创 Scrapy与分布式开发:scrapy实现自定义代理中间件
ip检测是比较常规的反爬手段,一般站点会限制ip的访问频率,或者根据ip的访问规律和频率来识别异常访问,从而点对点封ip。相信大家对代理ip并不陌生,这是ip反爬的绕过方式,且进一步衍生出代理池。
2024-02-06 16:06:56 1553
原创 Scrapy与分布式开发:scrapy下载中间件实现动态切换User-Agent
请求头User-Agent是比较常规的反爬手段,不同站点对其检测机制各异,有的是检测是否是合规的浏览器User-Agent,有的是在这基础上检测使用次数与频率,更有甚者是跟ip和cookie绑定在一起检测,这就要求我们能够动态去切换User-Agent(随机or判定切换)。
2024-02-05 12:48:54 1852
原创 Scrapy与分布式开发:原生scrapy如何接入scrapy-redis,初步入局分布式
scrpy-redis与原生scrapy的差异主要是把名单队列服务器化,也是存储在redis服务中,从而实现分布式,当然还有piplines采集结果数据的存储差异化,它也可以存储到redis中,实现数据存储分布式。
2024-02-02 14:31:01 1039
原创 【五一创作】某头条参数破解并实现界面化搭建
趁着日常闲余时间,想着搞一搞某头条的反爬,练练手,想到自己很久没开发过前端界面了,有点生疏,也趁此机会用flask开发一个简单的搜索界面(真的很简单…)整个流程搞下来还是花了点时间的,当然这个有点简单,不具备实际使用场景,有些隐藏的风控和难点会在使用量一上去就初心,所以练练手就行…
2023-04-29 21:49:27 1492 2
原创 爬虫逆向学习(五):使用RPC框架serkio解决逆向难题
最近在工作中遇到了一个反爬虫产品,处于技术能力和新产品迭代更新快的考虑,最后选择使用RPC技术解决问题,因为serkio框架帮我们封装好了服务,且自身具备一定的负载均衡能力,所以选择它作为RPC实现方案。新手入门请参考K哥的文章,我也是通过这篇继续学习的。RPC 技术及其框架 Sekiro 在爬虫逆向中的应用,加密数据一把梭当我们不考虑去逆向js来实现加密参数的话,可以考虑使用RPC 技术,它不需要加载多余的资源,稳定性和效率明显都更高,也不需要考虑浏览器指纹、各种环境。
2023-04-07 12:47:56 1568 2
原创 爬虫逆向学习(四):python与Javascript方式处理常见加解密
【代码】爬虫逆向学习(四):python与Javascript方式处理常见加解密。
2023-04-05 15:42:02 2105 2
原创 爬虫逆向学习(三):Hook让你快速定位网站逆向疑难杂症
Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。
2023-04-05 15:06:34 1317
原创 python爬虫工程师面经(2023年金三银四)
过年期间,经过自我慎重的考虑后,终于决定在2月份向公司提出了辞职,说实话很慌,也做好了长时间找不到工作的准备,只是继续呆在公司对自我发展毫无意义,找了差不多一个月,面试了六家公司,最后确定了一份工作,在这里分享一下我的面经。自我介绍离职原因优点与缺点发展规划个人觉得上面四个问题是面试者经常被问到的,建议大家可以在准备面试时准备好问题的答案,注意下面:离职原因不要说得太极端,不要过度涉及上家公司的不好。
2023-03-31 19:42:45 956 1
原创 selenium处理各类滑块验证码
selenium处理各类滑块验证码滑动验证码案例展示实现滑块拼图验证码案例展示实现滑块拼图验证码(Canvas)案例展示实现滑动验证码案例展示这种只要用鼠标点击并移动指定距离就可以完成验证(x轴)实现# -*- coding: utf-8 -*-import timefrom selenium import webdriverfrom selenium.webdriver import ChromeOptions, ActionChains# 添加参数options = Chrom
2022-04-26 10:20:38 7637 5
原创 Python requests发送multipart/form-data请求
依赖第三方包from requests_toolbelt import MultipartEncoderimport requestsfrom requests_toolbelt import MultipartEncoderm = MultipartEncoder( fields=quer_m, # quer_m是post请求需要的参数 boundary='------'+''.join(random.sample(string.ascii_letters + string.
2021-11-01 12:49:56 1471 3
原创 算法题一:判定字符是否唯一
题目描述实现一个算法,确定一个字符串 s 的所有字符是否全都不同。输入: s = “12234”输出: false输入: s = “1234”输出: true题解使用set的元素唯一特性实现return len(astr) == len(set(list(astr)))循环字符串写入list判断uniq = list() fori in astr: if i in uniq: return False uniq.append(i)retu
2021-09-17 21:02:25 128
原创 阮一峰老师博客爬取与博客文章存储持久化方式的思考
阮一峰老师博客爬取与博客文章存储持久化方式的思考前言博客文章存储持久化思考文本形式存储html形式存储pdf形式存储博客爬取思路爬取思路一爬取思路二个人选择pdf存储结尾前言以前阅读过阮一峰老师的博客,讲解通俗易懂,很是良心,想着把老师的博客都爬取下来,方便后面阅读。由于是第一次爬取并存储博客数据,如何永久储存博客是我需要思考的问题,而下来便是我自己总结的思路了。博客文章存储持久化思考文本形式存储文本形式存储是指将数据储存在文本文件中,这种方式确实能直接、快捷储存文字数据,但是文本形式存储无法保存
2021-08-10 22:12:42 935 3
原创 python 爬虫 表格和word文档table处理
表格解析导入包import xlrd下面方法针对的是表格的每列数据是有标题栏的,通过锁定标题栏,然后以标题栏为字典的key,以每行的数据分别为对应的value,这样就获得便捷的数据file_content = base64.b64decode(body)book = xlrd.open_workbook(file_contents=file_content)sheet1 = book.sheets()[0]# 总行数nrows = sheet1.nrowsrow_num = 0# 获取
2021-08-03 19:58:03 489
原创 python安装bsddb,解决import _bsddb
import bsddb提示没有这个库,使用pip install bsddb3安装安装时如果报以下错误:参考:先sudo apt install libdb-dev再pip install bsddb3
2021-06-09 11:55:49 1014 2
原创 基于tushare股票数据进行股票因子回测得到优势权重股
注:数据来源:tushare 署名:406940使用框架数据需要提前从从tushare数据源获取数据,思路是这样的:爬取某一天所有股票的因子-换手率,通过pro_bar接口获取,从中取出靠前的股票def handle_mvo_data(): """ 爬取某一天所有股票的因子-换手率 :return: """ all_ts_data = pd.DataFrame(columns
2021-04-30 15:24:45 418 1
原创 bootstrap-datetimepicker实现结束时间比开始时间多半个小时
引入所需文件bootstrap-datetimepicker.min.cssbootstrap-datetimepicker.min.jsbootstrap-datetimepicker.zh-CN.js我这边提供自己使用的 >下载html使用<div class="input-group" style="padding: 10px 15px;"> <span class="input-group-addon">开始时间</span> <
2021-03-20 15:03:23 307
原创 jq实现获取当前标签的父级的所有同级标签的值
前端代码展示<tr> <td width="45%">{{ resource.name }}</td> <td width="20%" >{{ resource.r_start_time }}</td> <td width="20%">{{ resource.r_end_time }}</td> <td width="15%"> <a data-toggle="modal" data-t
2021-03-13 12:33:20 713
基于MySQL、Redis和MongoDB数据库开发命令行新闻管理系统
2020-06-24
工作一年简历怎么整理好
2022-08-02
mysql导入几亿数据磁盘IO读写过大?
2022-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人