从头学习爬虫(三十五)重构篇----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协议
还有可能遇到 加解密有一定的限制,替换这两个jar包
二 post请求问题默认是不去重
逻辑记得不要重复否则一直会添加post请求
三 post请求缺少参数类型
我看了下底层就缺第三种
没办法包装下咯
request 包装下stringEntity
HttpUriRequestConverter类
addFormParams方法
加入stringEntity
(0.7.3版本已经支持基本类型)
通过Request
根据不同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内存溢出
实际可能存在的细节问题默认Scheduler,底层队列没问题(没有满的情况下),去重是用hashset。
如果一次爬取量过多会出现内存溢出