公告:

用VScode配置Python开发环境
时间:4年前 (2021/06/30) / 阅读:799 / 评论:0

用VScode配置Python开发环境

这里写图片描述

  max 
  这里写图片描述

  这里面比较复杂的是以下两个方法, 
agg,该方法和下面介绍的类似,可以用于对指定字段进行聚合操作。

pivot

6、distinct

(1)distinct:返回一个不包含重复记录的DataFrame 
  返回当前DataFrame中不重复的Row记录。该方法和接下来的dropDuplicates()方法不传入指定字段时的结果相同。 
  示例:

jdbcDF.distinct()1

  结果, 
  这里写图片描述

(2)dropDuplicates:根据指定字段去重 
  根据指定字段去重。类似于select distinct a, b操作 
  示例:

jdbcDF.dropDuplicates(Seq("c1"))1

  结果: 
  这里写图片描述

7、聚合

  聚合操作调用的是agg方法,该方法有多种调用方式。一般与groupBy方法配合使用。 
  以下示例其中最简单直观的一种用法,对id字段求最大值,对c4字段求和。

jdbcDF.agg("id" -> "max", "c4" -> "sum")1

  结果: 
  这里写图片描述

时间:8年前 (2017/10/04) / 阅读:1010 / 评论:0

DataFrame操作大全

常见反爬虫策略

常见反反爬虫策略

    针对反爬策略1可以使用高匿代理IP解决;针对反爬策略2,如果不是每次都弹验证码也可以使用高匿代理IP解决,如果感觉高匿代理不稳定或者收集起来不方便使用Tor网络(不懂Tor?动动你的手指百度吧^_^)也可以,如果每次都弹验证码那就得涉及到验证码识别了,简单的验证码可以自己写代码处理,python有不少知名的图像处理(识别)库(如PIL/Pillow、Mahotas、Pymorph、pytesser、tesseract-ocr、openCV等)和算法(比如大名鼎鼎的KNN[K邻近算法]和SVM[支持向量机]),但复杂的验证码例如涉及逻辑判断和计算、字符粘连变形、前置噪音多色干扰、多语种字符混搭的大多也只能靠接入人工打码平台来对抗了;针对反爬策略3,由于采用异步加载方式,网页内容不会一次性全部展示出来,需要将滚动条滑到最底部才能继续浏览下一页内容,此时可以使用selenium+phantomjs解决,phantomjs是一个无头无界面浏览器,使用selenium可以驱动它模拟浏览器的一切操作,但缺点也很明显,爬取效率低;针对反爬策略4,看情况而定吧,如果是比较简单的死循环陷阱,可以对爬虫将要爬取的链接进行判断,不重复爬取相同的页面,scrapy的LinkExtractor设定unique参数为True即可或者直接设定爬虫的最大循环次数。高级的陷阱笔者还没遇到,暂不讨论。此外增加爬取间隔和禁用cookie也能降低爬虫被ban的概率。
  1. 在settings.py同级目录下新建文件useragent.py

时间:8年前 (2017/09/29) / 阅读:958 / 评论:0

反爬虫与反反爬虫策略