Crawler

scp 复制文件或目录到本地或远端

混江龙づ霸主 提交于 2019-12-12 11:04:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言: 某些原因服务器会限制直接传输文件(禁用 rz,sz命令),这时候就需要使用 scp 进行文件或目录传输。 1.规则说明 scp 被复制目标 复制存储的目录 被复制的目标可以是文件或目录,可以是远端或本地的目标,目录的话要在 scp 后加 -r 参数 复制存储的目录可以是远端或本地,同时也可以复制的过程中重命名,等会举例说明 2.本地到远端 scp test.py root@10.0.0.254:/home/qingquanyingyue/ 本地 test.py 文件复制到远端 254机器的 qingquanyingyue 目录下, 根据机器的访问策略,一般会提示输入密码,输入密码即可完成传输 注意: root@ 是用户账号,和密码相互匹配,也可省略,省略时默认使用本地同样的账号 例如本地是 crawler 登录, scp test.py 10.0.0.254:/home/qingquanyingyue/ 等同于 scp test.py crawler@10.0.0.254:/home/qingquanyingyue/ 2.重命名 scp test.py root@10.0.0.254:/home/qingquanyingyue/test_new.py 复制的同时完成重命名为 test_new.py 3

使用Selenium来抓取动态加载的页面

元气小坏坏 提交于 2019-12-11 11:30:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一般的爬虫都是直接使用http协议,下载指定url的html内容,并对内容进行分析和抽取。在我写的爬虫框架 webmagic 里也使用了HttpClient来完成这样的任务。 但是有些页面是通过js以及ajax动态加载的,例如: 花瓣网 。这时如果我们直接分析原始页面的html,是得不到有效的信息的。当然,因为无论怎样动态加载,基础信息总归是包含在初始页面中得,所以我们可以用爬虫代码来模拟js代码,js读取页面元素值,我们也读取页面元素值;js发送ajax,我们就拼凑参数、发送ajax并解析返回的json。这样总归是能做的,但是比较麻烦,有没有比较省力的方法呢?比较好的方法大概是内嵌一个浏览器了。 Selenium 是一个模拟浏览器,进行自动化测试的工具,它提供一组API可以与真实的浏览器内核交互。Selenium是跨语言的,有Java、C#、python等版本,并且支持多种浏览器,chrome、firefox以及IE都支持。 在Java项目中使用Selenium,需要做两件事: 在项目中引入Selenium的Java模块,以Maven为例: <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java<

Scrapy 1.5.0之Spider

橙三吉。 提交于 2019-12-09 16:43:37
爬虫原理 创建一个以百度为名的爬虫,其中spiders/baidu.py内容如下: # -*- coding: utf-8 -*- import scrapy class BaiduSpider(scrapy.Spider): name = 'baidu' allowed_domains = ['www.baidu.com'] start_urls = ['http://www.baidu.com/'] def parse(self, response): pass 对spider来说,爬取的过程如下: 以初始的URL初始化Request,并设置回调函数。 当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。 如代码所示,spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取 start_urls 中的URL, 并以 parse 为回调函数生成 Request 。 在回调函数内分析返回的(网页)内容,返回 Item 对象、dict、 Request 或者一个包括三者的可迭代容器。 返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数(函数可相同)。 在回调函数内,您可以使用 选择器(Selectors)

你学爬虫多久了?如果你连这些都不知道那你可以放弃爬虫了!

坚强是说给别人听的谎言 提交于 2019-12-04 06:07:58
你了解爬虫是什么吗?你知道爬虫的爬取流程吗?你知道怎么处理爬取中出现的问题吗?如果你回答不出来,或许你真的要好好看看这篇文章了! 爬虫简介 网络爬虫(Web crawler) ,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为 数据采集,处理,储存 三个部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 爬虫原理 Web网络爬虫系统的功能是下载网页数据,为搜索引擎系统提供数据来源。很多大型的网络搜索引擎系统都被称为基于 Web数据采集的搜索引擎系统,比如 Google、Baidu。由此可见Web

设置 Confluence 6 外部索引站点

眉间皱痕 提交于 2019-12-03 04:44:44
Confluence 并不能比较容易的对外部站点进行搜索,这个是因为 Confluence 使用的是 Lucene 内部查找,但是你还是有下面 2 个可选的方案: 嵌入外部页面到 Confluence 替换 Confluence 查找 嵌入外部页面到 Confluence 如果你有少量的外部页面内容需要你的 Confluence 站点进行索引,你最好可以启用 HTML Include Macro 宏,使用这个宏将外部页面嵌入到你的 Confluence 页面中。 替换 Confluence 查找 如果你有足够的技术力量,你可以将 Confluence 的内部搜索用 crawler 进行替换,这样你可以用 crawler 搜索你的 Confluence 站点和外部站点。这个是 Confluence 提供的一个高级选项,相对于对 Confluence 的内部搜索进行修改来说,这个选项更加容易进行操作。这个要求删除你 Confluence 内部索引中的所有页面,将你 Confluence 的内部索引结果替换为你自己的 crawler 前段。 设置和替换你的联合查询来查询 Confluence 站点和你使用的其他站点,同时提供结果。你需要配置 open-source crawlers 服务器。注意,你可以通过 Confluence API 对 Confluence 进行查询。 通过

设置外部查找工具来索引 Confluence 6

北慕城南 提交于 2019-12-01 20:21:38
任何网页的 crawler 工具都可以被用来索引你的 Confluence 站点中的内容。如果你希望注册用户才能够查看的内容也被索引的话,你需要为你的 Confluence 创建一个只被 crawler 使用的用户。将这个用户赋予你需要索引内容的访问权限,但是限制这个用户具有删除和管理员的权限。这个限制能够阻止 crawler 用户不能对你的站点进行修改。 有关外部应用对你的 Confluence 进行索引的功能,请参考 Confluence APIs 中的内容。 https://www.cwiki.us/display/CONF6ZH/Setting+Up+an+External+Search+Tool+to+Index+Confluence 来源: oschina 链接: https://my.oschina.net/u/2344080/blog/1843906

Python 编写知乎爬虫实践

会有一股神秘感。 提交于 2019-11-29 17:24:28
1、爬虫的基本流程 网络爬虫的基本工作流程如下: 首先选取一部分精心挑选的种子 URL 将种子 URL 加入任务队列 从待抓取 URL 队列中取出待抓取的 URL,解析 DNS,并且得到主机的 ip,并将 URL 对应的网页下载下来,存储进已下载网页库中。此外,将这些 URL 放进已抓取 URL 队列。 分析已抓取 URL 队列中的 URL,分析其中的其他 URL,并且将 URL 放入待抓取 URL 队列,从而进入下一个循环。 解析下载下来的网页,将需要的数据解析出来。 数据持久话,保存至数据库中。 2、爬虫的抓取策略 在爬虫系统中,待抓取 URL 队列是很重要的一部分。待抓取 URL 队列中的 URL 以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些 URL 排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略: 深度优先策略(DFS) 深度优先策略是指爬虫从某个 URL 开始,一个链接一个链接的爬取下去,直到处理完了某个链接所在的所有线路,才切换到其它的线路。 此时抓取顺序为:A -> B -> C -> D -> E -> F -> G -> H -> I -> J 广度优先策略(BFS) 宽度优先遍历策略的基本思路是,将新下载网页中发现的链接直接插入待抓取 URL 队列的末尾

2019测试指南-web应用程序安全测试(二)查看Web服务器图元文件的信息泄漏

让人想犯罪 __ 提交于 2019-11-29 11:01:51
本节介绍如何测试robots.txt文件以查找Web应用程序目录或文件夹路径的信息泄漏。此外,Spiders,Robots或Crawler要避免的目录列表也可以创建为 应用程序的Map执行路径 的依赖项 (OTG-INFO-007) 测试目标 1. Web应用程序的目录或文件夹路径的信息泄漏。 2.创建Spiders,Robots或Crawlers要避免的目录列表。 如何测试 的robots.txt Web Spider,Robots或Crawlers检索网页,然后递归遍历超链接以检索更多Web内容。他们接受的行为由web根目录[1]中robots.txt文件的 机器人排除协议 指定。 例如,2013年8月11日 http://www.google.com/robots.txt中 抽取的robots.txt文件的开头引用如下: 用户代理: * 禁止:/搜索 禁止:/ sdch 禁止:/ groups 禁止:/ images 禁止:/目录 ... 该 用户代理 的指令是指特定的网络蜘蛛/机器人/爬虫。例如, User-Agent:Googlebot 是指来自Google的蜘蛛,而“User-Agent:bingbot” [1] 是指来自Microsoft / Yahoo!的爬虫。 上述示例中的 User-Agent:* 适用于以下引用的所有网络蜘蛛/机器人/抓取工具[2]: 用户代理

网站故障排查常用命令

怎甘沉沦 提交于 2019-11-29 00:19:26
1.查看TCP连接状态 1 2 3 4 5 6 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}' netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}' netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c 2.查找请求数请20个IP(常用于查找攻来源): 1 2 netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 netstat -ant |awk '/:80/