并发爬虫小练习. 直接粘贴到本地,命名为.py文件即可运行,运行时的参数为你想要爬取的用户.默认是本博客. 输出是以用户名命名的目录,目录内便是博客内容. 仅供学习python的多线程编程方法,后续会重写成并行爬虫. 爬虫代码如下: # -*- coding:utf-8 -*- from multiprocessing.managers import BaseManager from pyquery import PyQuery import os, sys, urllib import re,…
在之前的文章中我们介绍了一下 requests 模块,今天我们再来看一下 Python 爬虫中的正则表达的使用和 re 模块. 实际上爬虫一共就四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处理数据(按照我们想要的方式存储和使用) 我们在之前写的爬虫程序中,都只是获取到了页面的全部内容,也就是只进行到了第2步,但是大部分的东西是我们不关心的,因此我们需要将之按我们的需要过滤和匹配出来.这时候我们就需要用到…
1. 简介 上一篇介绍了自动化框架的架构,今天宏哥就带领小伙伴或者童鞋们开始开工往这个框架里开始添砖加瓦.主要是介绍一个框架unittest单元测试框架和一种设计思想POM. 2. unittest单元测试框架 前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是J…
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 简介 在分析一些站点的 JavaScript 代码时,比较简单的代码,函数通常都是一个一个的,例如: function a() {console.log("a")} function b() {console.log("a")} function c() {console.log("a")} 但是稍微复杂一点的站点,通常会遇到类似如下的代码结构…
什么是 RPC RPC,英文 RangPaCong,中文让爬虫,旨在为爬虫开路,秒杀一切,让爬虫畅通无阻! 开个玩笑,实际上 RPC 为远程过程调用,全称 Remote Procedure Call,是一种技术思想而非一种规范或协议.RPC 的诞生事实上离不开分布式的发展,RPC 主要解决了两个问题: 解决了分布式系统中,服务之间的互相调用问题: RPC 使得在远程调用时,像本地调用一样方便,让调用者感知不到远程调用的逻辑. RPC 的存在让构建分布式系统更加容易,相比于 HTTP 协议,RPC…
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 前几天,也就是 10 月 4 日,Python 发布了 3.10.0 版本,什么?3.9 之后居然不是 4.0?(手动狗头)其实龟叔(Guido van Rossum,吉多·范罗苏姆,Python 之父)早在去年 9 月就说了: 3.9 之后的版本为 3.10:事实上,它已经存在(在 Github Master 主分支中). 如果有版本 4,从 3 到 4 的过渡更像从 1 到 2,而不是从…
什么是 AST AST(Abstract Syntax Tree),中文抽象语法树,简称语法树(Syntax Tree),是源代码的抽象语法结构的树状表现形式,树上的每个节点都表示源代码中的一种结构.语法树不是某一种编程语言独有的,JavaScript.Python.Java.Golang 等几乎所有编程语言都有语法树. 小时候我们得到一个玩具,总喜欢把玩具拆解成一个一个小零件,然后按照我们自己的想法,把零件重新组装起来,一个新玩具就诞生了.而 JavaScript 就像一台精妙运作的机器,通过…
题意: 有W.E两个跑道,在每个时刻每个跑道的飞机都从0开始编号,而且每个时刻都有Wi和Ei架飞机到达这两个跑道.而且每个时刻只能选择一个跑道的一架飞机起飞.问如何选择才能使得飞机的最大编号最小.(每个时刻算编号时是在飞机起飞之前的) 思路: 又是一个最大值最小的问题,可以用二分,不过怎么二分我没有想到. 参考的别人的代码:http://blog.csdn.net/u011345136/article/details/17793415 起飞的决策是这样的: 如果一条跑道是空的,另一条跑道有飞机,…
没有什么前言?直接进入正题qwq 俩俩异或 求最值: 建trie树 O(n)枚举每个数找这个数的最值,每次反走就成,还可以剪枝一波(如果在某位已经小于ans显然可以直接return? void Insert(int val) { ; <<;i>=;i>>=) { :; if(!ch[x][to]) ch[x][to]=++node; x=ch[x][to]; } } //建树,懒得说 int Que(int val) { ,bs=; <<;i>=;i>…
大致题意: 给你9堆扑克牌,每堆牌有4张,大小从A~K.每次从9堆牌牌顶抽走两张大小相同的牌,且抽走每一对相同的牌的概率都相等.问可以全部抽完的概率. 分析: 这是一道概率dp题.剩余的牌数作为状态,有9堆,意味着要一个9维数组来存d[i1][i2][i3][i4][i5][i6][i7][i8][i9]表示这个状态的概率,0<=i<=4. 状态转移: 当前状态的概率等于抽走两张牌后所能达到的状态的概率和除以所能达到的状态数 边界d[0][0][0][0][0][0][0][0][0]=1 #…