spider

服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

北城余情 提交于 2019-12-25 11:57:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如宜搜蜘蛛(YisouSpider)。最近张戈发现nginx日志中出现了好多宜搜等垃圾的抓取记录,于是整理收集了网络上各种禁止垃圾蜘蛛爬站的方法,在给自己网做设置的同时,也给各位站长提供参考。 一、Apache ①、通过修改 .htaccess文件 修改网站目录下的.htaccess,添加如下代码即可(2种代码任选): 可用代码 (1): RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider

TinySpider实战之-Visual Paradigm教学相关文档下载

☆樱花仙子☆ 提交于 2019-12-19 19:16:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Visual Paradigm 是一个非常棒的UML绘图工具,需要对它了解的,可以直接看官网,在此不做更多介绍,最近要使用它来做一些设计,它有非常完备的在线 教学 ,写得非常不错。这个时候问题来了,这些教学非常多,而且如果所有人都访问外网的话及学习效率都比较低。通过观察,发现里面的所有文章都有PDF可以下载,而且里面的示例也可以下载,呵呵,这就好办了,做个程序把它抓下来不就解决了?于是把此问题交给 HulkZ 同学去干了, HulkZ 同学花了半天时间交工,我看了下,发现虽然局部有优化的地方,但是总体还是可以的,于是就写这篇文章做个说明。 注:HulkZ同学还没有大学毕业,正在大学4年级学习。 第一步:教学首页的处理 public class VisualParadigmMain { public static void main(String[] args) throws Exception { Spider spider = new SpiderImpl("UTF-8"); Watcher watcher = new WatcherImpl(); watcher.addProcessor(new VisualParadigmMainProcessor()); QuickNameFilter<HtmlNode

用TinySpider进行网页抓取实例

坚强是说给别人听的谎言 提交于 2019-12-19 18:53:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 非常感谢@李少龙 的提醒 本例中用到的maven坐标变化如下: <dependency> <groupId>org.tinygroup</groupId> <artifactId>org.tinygroup.spider</artifactId> <version>0.1.0-SNAPSHOT</version> </dependency> 在百度中搜索笑话,看到这么一个网站:http://www.jokeji.cn/,点进去看看,里面的内容比较简单,也比较有趣,呵呵,就它了,我们今天的示例就是如何利用TinySpider来进行网页抓取。 示例1:获取某个分类下的笑话列表 首先在笑话分类中看到个爆笑男女,呵呵,先拿它小试一下,看看是否有效果。 首先编写一个main方法,内容如下: public class JokejiTest { public static void main(String[] args) { Spider spider = new SpiderImpl("GBK"); Watcher watcher = new WatcherImpl(); watcher.addProcessor(new PrintJokejiProcessor()); QuickNameFilter<HtmlNode>

让Scrapy的Spider更通用

不羁岁月 提交于 2019-11-30 04:20:19
####1,引言 《Scrapy的架构初探》 一文所讲的Spider是整个架构中最定制化的一个部件,Spider负责把网页内容提取出来,而不同数据采集目标的内容结构不一样,几乎需要为每一类网页都做定制。我们有个设想:是否能做一个比较通用的Spider,把定制部分再进一步隔离出去? GooSeeker有一个爬虫群模式,从技术实现层面来考察的话,其实就是把爬虫软件做成一个被动接受任务的执行单元,给他什么任务他就做什么任务,也就是说同一个执行单元可以爬多种不同的网站。而分配任务的是GooSeeker会员中心的爬虫罗盘,实现集中管理分布执行。 开源Python即时网络爬虫项目同样也要尽量实现通用化。主要抓取以下2个重点: 网页内容提取器从外部注入到Spider中,让Spider变通用:参看 《Python即时网络爬虫:API说明》 ,通过API从GooSeeker会员中心获得网页内容提取器,可以充分利用MS谋数台的直观标注快速生成提取器的能力。 抓取目标网址不再存于Spider,而是从外部获得:GooSeeker有个基于大数据平台的网址库系统,还有爬虫罗盘可观察网址的抓取状态,也有用户界面添加删除网址,把Spider进一步做成一个执行机构。 下面我们将进一步讲解实现原理,以助于读者阅读源码。 ####2,爬虫群模式示意图 中间蓝色部分就是GooSeeker会员中心的地址库和爬虫罗盘

使用scrapy的定制爬虫-第一章-前言

自古美人都是妖i 提交于 2019-11-29 13:04:12
这个系列文章还在逐步完成中,可能会多次编辑 这是一个系列文章,关于定制爬虫,使用scrapy. 这是前言. 爬虫,最广为所知用途是搜索引擎的网页抓取.也有很多其他的用途. 诸如各类比价网站(etao,惠惠购物助手等),信息聚合,采集站等等.这种爬虫不像通用的搜索引擎爬虫,他们往往有各自的目的,例如比价网站,其爬虫周期性的从网上获取物品的价格信息.信息聚合站点将一类信息通过爬虫采集后呈现. 在几年前比价这个概念还不像现在这样广泛时,我在一个群里听人说及他正在开发一个购物比价的产品.想着这难度还是不小的.不确定那时是否有各类成熟的框架或示例供参考.他要实现一个下载调度,解析内容,爬取策略,等等等等.实际上我当时感觉,最大的难点在于,被爬取网站每改版一次,他的解析器就得重写一次,非常麻烦.但实际上网站的改版不会如此频繁,解析内容部分对应修改即可.略惊讶的是,比价这个概念,在2000年左右就有了(如果没记错我是在http权威指南的某部分看到的). 最近我玩了一下爬虫.在此之前,我对http,web相关规范,web自动化(用于测试,我用这个来写web机器人.)也有一定了解. 在这个过程中遇到了一系列的问题.包括 1,javascript动态生成内容处理. 2,html,http等相关规范及细节问题. 3,调度,效率等. 4,大规模爬取相关... etc... 这个系列文章将涉及这些问题