最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
还有更多学习笔记面试资料也分享如下:
1.首先引入webmagic的依赖
us.codecraft
webmagic-core
0.6.1
us.codecraft
0.6.1
webmagic-extension
us.codecraft
webmagic-selenium
0.6.1
org.seleniumhq.selenium
selenium-java
3.3.1
2.创建PageProcessor,用来处理网页数据
/**
- @author linzhiqiang
*/
public class CsdnBlogProcessor implements PageProcessor {
private Site site = Site
.me()
.setDomain(“csdn.net”)
.setSleepTime(3000)
.setUserAgent(
“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31”);
@Override
public void process(Page page) {
System.out.println(“html:”+page.getHtml());
}
@Override
public Site getSite() {
return site;
}
}
site中放置爬取的网站域名、cookie、请求头等信息。 process用来处理爬取到的网页数据,处理完的数据可以通过page.putField(),再通过Pipeline获取存储到数据库。
3.创建Pipeline,存储处理好的网页数据
public class CsdnPipeline implements Pipeline {
@Override
public void process(ResultItems resultItems, Task task) {
//文章题目
String title = resultItems.get(“title”);
//文章内容
String context = resultItems.get(“context”);
System.out.println(“title:” + title);
System.out.println(“context:” + context);
}
}
在process中通过resultItems来获取PageProcessor存储的page数据,最后我们可以将数据存储到redis、数据库、文件等地方。
4.利用Scheduler调度爬取任务
public class RedisScheduler extends DuplicateRemovedScheduler implements
MonitorableScheduler, DuplicateRemover {
@Override
public int getLeftRequestsCount(Task task) {
return 0;
}
@Override
public boolean isDuplicate(Request request, Task task) {
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下