首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用真正的jquery从网页中提取数据?

如何在python中使用真正的jquery从网页中提取数据?
EN

Stack Overflow用户
提问于 2016-01-05 06:27:24
回答 1查看 3.3K关注 0票数 2

许多python解析器,比如lxmlpyquery不知道哪个元素是display:none.text()函数经常在<script>中得到注释或其他东西,等等。

如下所示:

代码语言:javascript
复制
<tr class="" rel="21261811">
         <td class="leftborder timestamp" rel="1451972762"><span class="updatets ">
14secs</span></td>
         <td><span><style>
.yc_S{display:none}
.qDiU{display:inline}
.VXrU{display:none}
.JoAO{display:inline}
.DEIS{display:none}
.p6YU{display:inline}
</style><span style="display:none">132</span><div style="display:none">132</div><span class="95">189</span><span class="yc_S">243</span><div style="display:none">243</div>.<span class="DEIS">70</span><div style="display:none">70</div><span></span><span class="VXrU">208</span><span></span><span style="display: inline">219</span><span style="display: inline">.</span><span style="display:none">131</span><span class="VXrU">131</span><span style="display: inline">210</span><span class="115">.</span><span style="display: inline">153</span></span></td> 
         <td>
10000</td>
             <td style="text-align:left" rel="mx"><span class="country" style="white-space:nowrap;">



<img src=" style="width: 16px; height: 11px; margin-right: 5px;" class="flags-mx" alt="flag ">Mexico</span>
</td>

         <td> <div class="progress-indicator" style="width: 114px" value="1839" levels="speed" rel="1839">
        <div class="indicator" style="width: 82%; background-color: rgb(0, 173, 173)"></div>
        </div>
         </td>
             <td> 
                 <div class="progress-indicator " style="width: 114px" title="" rel="271" value="271" levels="speed">
                            <div class="indicator" style="width: 95%; background-color: rgb(0, 173, 173)"></div>

        </div>
             </td>

             <td>socks4/5</td>
             <td nowrap="">High +KA</td>

         </tr>

$('tr').text()输出应该是lxml或pyquery中一个IP address.But丑陋的结果。(实际上Jquery中的$('tr').text()也无法获得IP,需要一些Jquery basic filter,而lxml或pyquery不支持)

现在,我必须使用selenium内置选择器来避免上述问题。但我想找到一个解决这个问题的终极方法。使用Jquery解析html的方式。

经过一些搜索,我只发现pyv8可以在python中使用javascript。

我想使用幻影代理获得html,并让jquery来处理它。

但是pyv8的文档太少了,我听不懂。

欢迎任何例子或其他解决方案,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-01-12 02:17:47

现在,我构建了一个支持jquery的幻影代理。流动情况如下:

  1. python将url和js代码(jquery代码)发送到幻影js。
  2. 幻影js (init与jquery注入)获取html,并运行js代码。
  3. 返回js代码结果
  4. python得到结果

更多细节可以看到phantomjs inject jquery

但实际上,它并不是在python中运行jquery,而是依赖外部帮助。

这是目前我能用的最好的解决方案。欢迎来到另一种方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34605467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档