http实现爬虫相关,20170328

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)



你可能感兴趣的:(java,http)