【发布时间】:2020-06-10 11:02:44
【问题描述】:
默认情况下,Crawler 会抓取整个页面,包括在所有页面中通用的页眉和页脚。我们的要求是爬虫只能爬取页面的主要内容(在 div#body-wrapper 下)
我们使用 parsefilters.json 实现了同样的效果。
{
"class": "com.digitalpebble.stormcrawler.parse.filter.ContentFilter",
"name": "ContentFilter",
"params": {
"pattern": "//DIV[@id=\"body-wrapper\"]",
"pattern2": "//DIV[@itemprop=\"articleBody\"]",
"pattern3": "//ARTICLE"
}
}
更新 parsefilters.json 后,它只抓取该 div,但它包括所有空格、换行符、JS、CSS 代码等,如下所示。
“内容”:“\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t 发展您的业务....... ...... \n\n\n\n\n\n\t\n\t\t\n\t\t\t\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\t\n\n\t\n\t\t\n\n\n\n\n\t\n\n\t\n\t \t\n\t\t\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\n\t\t\n \n\t\t\n\n\n\n\t\n\t\t\n\t\t\n\n\n\t\t\t\n\t\t\t\t \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\t\n \n\t\t\n\n\t\t\n\n\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t \n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\n\n\t\n\n\n\n\t \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\n\t\t \t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\n\t \n\n\t\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\t\n\t \t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t \t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\n\t\n\t\t \n\t\n.登陆页面-指标 { \n\ttop:inherit !important;\n}\n\n\t.slide-share .slide-share-indicators li {\n\t 宽度: 10px;\n\t 高度: 10px;\n \t 边框半径:10px;\n\t 边框:无;\n\t 边距:0px 0 0 14px;\n}\n.slide-share .cta-btn-inline { \n 左边距:0px ;\n}\n .slide-share .slide-share-indicators .active {\n\t 背景颜色:#f33;\n}\n .slide-share .slide-share-item-img {\n \t 宽度:100%;\n\t 高度:360px;\n\t 最大高度:370px;\n\t 背景尺寸:封面;\n\t 背景位置:居中;\n}\n .slide-share .carousel-indicators {\n\t margin-bottom: 0px;\n\t bottom: 24px;\n}\n .slide-share .slide-share-item-caption {\n\t 宽度: 100%;\n\t -webkit-transition: height 0.4s ease;\n\t transition: height 0.4s ease;\n\t padding: 24px 16px;\n\t padding-bottom:0px;\n \t 位置:绝对;\n\t 底部:5%;\n\t 显示:块;\n\t 颜色:黑色;\n}\n .slide-share .slide-share-item-caption:hover {\n\t 文本装饰:无;\n}\n .slide-share .slide-share-item-desc {\n\t 最大宽度:992px;\n\t 宽度:10 0%;\n\t 位置:相对;\n\t 边距:0 自动;\n}\n .slide-share .slide-share-item-desc h2 {\n\t 边距-底部:8px;\ n\t 字体大小:36px;\n\t 字体粗细:700;\n}\n .slide-share .slide-share-item-desc p {\n\t 行高:1.5;\n \t margin-bottom: 24px;\n\t font-size:24px;\n\t font-weight: 400;\n\t width:60%;\n}\n .slide-share .slide-share -arrows {\n\t top: 50px;\n\t margin: 30px;\n\t width: 0;\n\t align-items: initial;\n}\n .slide-share .slide-share -arrow-icon {\n\t color: #fff;\n\t font-size: 25px;\n\t margin-top: 75px;\n}\n.slide-share .slide-share-item- desc {\n 背景颜色:透明;\n}\n .slide-share .slide-share-arrow-icon:hover {\n\t 颜色:#ee1818;\n\t 字体大小:25px;\ n}\n\n.slide-share .carousel-item .shade { \n width: 60%;\n height: 100%;\n position: absolute;\n background-image: linear-gradient(to right, #2e2e2e, 透明);\n 不透明度: .6;\n \n}\n\n @media (max-width: 991px) and (min-width: 768px) {\n\t .slide-share .slide -share-item-desc h2 {\ n\t\t 宽度:100%;\n\t}\n\t .slide-share .slide-share-item-desc p {\n\t\t 宽度:100%;\n\t}\ n}\n @media (max-width: 768px) {\n\t .slide-share .slide-share-item-desc h2 {\n\t\t 宽度: 100%;\n\t\t 字体-size: 24px;\n\t\t margin-bottom: 16px;\n\n\t}\n\t .slide-share .slide-share-item-desc p {\n\t\t font-大小:16px;\n\t\t 显示:无;\n\t}\n\t.slide-share-item-img.left-center {\n\t背景位置:左中心;\n\t } \n\n\t.slide-share-item-img.right-center {\n\t背景位置:右中心;\n\t} \n\t.slide-share-item-img.center- center {\n\t背景位置:centercenter;\n\t}\n}\n \n\n\n\n\n \n\t\n\t\t\n\t\t\t\ t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\ t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\t\ t\n\t\t\t\t\n\t\t\t\t\t\n\t\t
但是当 Crawler 抓取整页(默认配置)时,它没有添加空格、换行符、JS、CSS 代码等。
我们如何抓取页面的某些部分但没有空格、换行符、JS、CSS 等。
请多多指教。
谢谢。
【问题讨论】: