
WebMagic
艳阳高照中最亮的星
距离产生距离
展开
-
chromedriver:org.openqa.selenium.InvalidArgumentException
增加判断网址是否携带了协议,即以 “http://” 或者 “https:/”/开头 // 检查网址是否携带http if (indexOf("http")>-1) { list.add(link); }如果不行再检查链接是否完整吧...原创 2020-11-20 16:16:56 · 1194 阅读 · 0 评论 -
webmagic chromeDriver linux 未正常退出
使用selineum + chromeDriver 的时候,发现运行一个周期后调用摧毁downloader的时候,webdriver有时候并不会关闭,这样运行时间长以后,死掉的chrome越来越多,内存就爆了。在服务器上,可以在源码或者在调用spider.run()结束后,运行脚本将现有的chrome进程干掉: String[] cmd = {"/bin/sh","-c","ps -ef|grep chrome |grep -v grep | cut -c 9-15|xargs kill -s 9"}原创 2020-11-13 11:10:33 · 633 阅读 · 0 评论 -
webmagic+chromedriver 获取登录后的cookies后爬取其他网页内容
登录获取cookies:public class GetCookieByLogin { private static Logger logger = LogManager.getLogger(GetCookieByLogin.class); //用来存储cookie信息 private Set<Cookie> cookies = null; //使用selenium来模拟用户登录获取Cookie public void login(){ Web原创 2020-10-28 18:35:42 · 859 阅读 · 0 评论 -
webmagic:org.openqa.selenium.TimeoutExceptopm:timeout
启动爬虫后,在服务器查看日志,总是卡在timeoutException,然后整个进程就block住,不再往下执行:猜想是浏览器打开网址后,文档正常下载,但是js、css、图片等静态资源没有正常下载,而是一直在加载,导致超时报错,而且没有捕捉这个异常,导致这一个线程死掉。在downloader的download方法中,webDriver.get(request.getUrl());这个打开网页的指令并没有加上超时设置以及超时的异常捕获,将这一句代码扩展: //记录开始打开网址原创 2020-10-12 18:44:20 · 832 阅读 · 0 评论 -
webmagic + chromeDriver 下一页
在爬网站的时候,下一页的点击事件是调用js函数的无法直接由regex获取到urls1.在PageProcessor.java中增加判断当前页面的url是否符合点击下一页,如果符合则将该页面的url添加到request,增加额外参数标记到request,再次爬取;2.修改SeleniumDownloader.java的downLoad方法:(在打开页面之后,将内容添加进page之前增加代码)@Overridepublic Page download(Request request, Tas原创 2020-06-30 18:24:25 · 813 阅读 · 0 评论