|
1、ip代理
2、httpclient线程池
3、广度优先【深度优先】
4、多线程爬取/单线程爬取
参考框架webmagic
自定义针对特色网站爬虫:
1、httpclient参数设置
2、请求头head设置
3、request请求参数设置
4、用户名密码登陆设置以及session
httpclient连接池Timeout waiting for connection 合理设置一下三个参数
defaultMaxPerRoute(每个路由(route)最大连接数 )
maxTotal(最大连接数)
connectionRequestTimeout(从连接池中获取到连接的最长时间 )
广度优先解析:仿照wget,取url判断层级,一层通过httpclient直接下载生成index.html,二层通过httpclient得到内容生成文件,再解析内容,下载需要的html、css、js、img等。三层解析二层的html,下载需要的html、css、js、img等,依次类推。
20170323更新,除了ip代理之外其他都已经实现,层级爬取。
解析使用htmlpaser,适合用来做层级爬取以及一些简单的信息
后期打算追加jsoup方式,jsoup适合解析指定table下面的一行行信息,按照一定的规则得到数据,然后按照一定规则进行分类。
iptraf 和nload监控网络还有iftop
iftop:目标 源地址 进出速度
nload:in/com 网卡进出速度。
iptraf 种类多种多样。
nload安装地址:http://www.cnblogs.com/kgdxpr/p/3311507.html
iftop安装地址:http://blog.sina.com.cn/s/blog_61c07ac50101gm21.html
-----------------------------------------------2017-03-28-----------------------------------------------------
注意三个超时时间connectTimeout 创建链接超时时间 connectionRequestTimeout 从连接池中获取到连接的最长时间
特别注意socketTimeout:数据传输的最长时间,指的是没有数据传输时毫秒数报错,如果是一个下载的大文件存在安全隐患一直无法执行完成,并且线程池会占用很大的带宽。可尝试在response返回头中进行筛选,不要这种东西。
以及设置ip代理的三种方式---
----------------------------2017-4-11-----------------------------------
爬取的url中存在空格http://www.leiphone.com/tag/Windows 9
解决方式encode = URLEncoder.encode(" ","utf-8"); url.replace(" ", encode)
|