一故慈、需求背景
公司有爬蟲需求具练,希望通過xpath解析網(wǎng)頁帘饶,最早的版本是調(diào)用Java版本的Jsoup來完成的,但是Jsoup只能處理一些簡單的xpath撒璧,對于一些特殊函數(shù)的xpath無法支持透葛,后來又通過使用xpath2selector用來處理高級xpath問題,但是xpath2selector也存在一些問題卿樱,不能支持部分高級函數(shù)以及亂碼問題僚害,java版本使用xpath太難尋找,最終決定使用python作為解析xpath的語言。
二萨蚕、需求分析
用python解析xpath需要解決兩個問題
1.Java調(diào)用python
2.python解析xpath
三靶草、需求實現(xiàn)
1、Java調(diào)用python
剛開始的時候使用Jython作為Java和python之間的互通工具岳遥,測試之后確實可以使用奕翔,但是等到使用python的時候發(fā)現(xiàn)Jython不支持lxml,最后決定使用Java原生調(diào)用命令行的方式浩蓉。以下為Java原生調(diào)用python的解決方案
由于簡書對code的支持不是特別好派继,所以以下用圖片代替
注:在linux環(huán)境中每個傳入的參數(shù)長度不能超過132kb
2、python接收數(shù)據(jù)并用lxml處理返回
1:接收數(shù)據(jù)
#python lxml解析xpath
3捻艳、環(huán)境搭配
pip? installl? xml
原文地址可查看:http://blog.csdn.net/yanxiaobo1991/article/details/78144359