Nutch2.x爬取同花顺问财无有效内容,如何配置种子URL与regex-urlfilter.txt?
Nutch2.x爬取JS渲染页面及URL配置方案
核心问题
你爬取的同花顺问财页面是JavaScript渲染的动态页面,Nutch默认的HTML解析器仅抓取静态源码,无法执行JS加载动态内容,因此返回的是JS未启用的提示文本。
种子URL文件配置
种子文件(通常为urls/seed.txt)直接写入目标URL,每行一个,格式如下:
http://www.iwencai.com/unifiedwap/result?tid=stockpick&qs=box_main_ths&w=A%E8%82%A1%E4%B8%BB%E6%9D%BF%3B%28%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5ma10-%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5ma5%29%3E%28%E5%BD%93%E5%89%8Dma10-%E5%BD%93%E5%89%8Dma5%29%20%3B%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5KDJ%E5%8D%B3%E5%B0%86%E9%87%91%E5%8F%89%E6%88%96%E9%87%91%E5%8F%89%3B%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5%E6%9C%80%E9%AB%98%E4%BB%B7%3C%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5ma5%3B%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5ma5%3C%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5ma20%20%3B%E5%BD%93%E5%89%8Dma10%3Ema5%3B%E7%8E%B0%E4%BB%B7%3E%E4%B8%8A%E4%B8%80%E4%B8%AA%E4%BA%A4%E6%98%93%E6%97%A5%E6%94%B6%E7%9B%98%E4%BB%B7
注意:不要添加多余空格或注释。
regex-urlfilter.txt配置
方案1:允许爬取iwencai.com域名下所有页面
# 允许目标域名的所有URL +^http://www\.iwencai\.com/.* # 禁止其他所有URL -.+
方案2:仅允许爬取指定选股结果页面
如果只需要限定爬取目标类型的页面,使用更精确的规则:
# 匹配选股结果URL格式 +^http://www\.iwencai\.com/unifiedwap/result\?.* # 禁止其他所有URL -.+
解决JS渲染问题的关键配置
要获取动态内容,必须启用Nutch的JS执行能力:
在
conf/nutch-site.xml中启用js插件,修改plugin.includes属性:<property> <name>plugin.includes</name> <value>protocol-httpclient|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|js|...<!-- 保留原有其他插件 --></value> </property>确保
js被包含在插件列表中。开启JS执行并配置引擎:
<property> <name>js.enable</name> <value>true</value> </property> <property> <name>js.engine</name> <value>rhino</value> <!-- 可选nodejs,需额外配置node路径 --> </property>若使用NodeJS,需添加:
<property> <name>js.node.path</name> <value>/path/to/node</value> <!-- 替换为你的node可执行文件路径 --> </property>
内容的提问来源于stack exchange,提问作者xinshouke
相关产品推荐
相关产品推荐

