从头学习爬虫(三十五)重构篇----WebMagic的坑

本文介绍WebMagic的一些用法以及用法。

一 ssl问题

老版本没有加支持协议github可能会遇到以下问题,更新最新版本或者使用以下解决方案

绕过ssl时,没有支持版本(maven 0.7.3还是老的 还是有错的 建议去github clone)

 javax.net.ssl.SSLException: Received fatal alert: protocol_version 

问题解决参考

https://www.cnblogs.com/sunny08/p/8038440.html

解决方案:

重写HttpClientGenerator类

buildSSLConnectionSocketFactory方法

添加SSLv2Hello和TLSv1.2协议

从头学习爬虫(三十五)重构篇----WebMagic的坑_第1张图片

还有可能遇到 加解密有一定的限制,替换这两个jar包

还可能

 

二 post请求问题默认是不去重

逻辑记得不要重复否则一直会添加post请求

 

三 post请求缺少参数类型

我看了下底层就缺第三种

没办法包装下咯

request 包装下stringEntity

 

HttpUriRequestConverter类

addFormParams方法

从头学习爬虫(三十五)重构篇----WebMagic的坑_第2张图片

加入stringEntity

(0.7.3版本已经支持基本类型)

通过Request

从头学习爬虫(三十五)重构篇----WebMagic的坑_第3张图片

根据不同content-type去设置post参数,找对应方法即可

四 site参数设置

不要乱加refer 

内容addheader不要gzip

正确是用 .setUseGzip(true)

site放通用header 比如UA cookie 

其他接受内容形式 发送形式 写在request里面

 

五 xpath

不支持.xpath("//a[contains(text(),'5')])

   支持.xpath("//a[contains(@data,'5')])

 

六 Scheduler内存溢出

从头学习爬虫(三十五)重构篇----WebMagic的坑_第4张图片

 

实际可能存在的细节问题默认Scheduler,底层队列没问题(没有满的情况下),去重是用hashset。

如果一次爬取量过多会出现内存溢出

 

你可能感兴趣的:(网络爬虫)