python– 使用scrapy刮掉没有javascript代码的文本

python– 使用scrapy刮掉没有javascript代码的文本,第1张

概述我目前正在使用scrapy设置一堆蜘蛛.这些蜘蛛应该只从目标网站中提取文本(文章,论坛帖子,段落等).问题是:有时,我的目标节点包含< script>标签,因此刮下的文本包含javascript代码.Here is a link到我正在使用的一个真实的例子.在这种情况下,我的目标节点是// td [@ id ='contenuStory'].问题是有一个<

我目前正在使用scrapy设置一堆蜘蛛.这些蜘蛛应该只从目标网站中提取文本(文章,论坛帖子,段落等).

问题是:有时,我的目标节点包含< script>标签,因此刮下的文本包含javascript代码.

Here is a link到我正在使用的一个真实的例子.在这种情况下,我的目标节点是// td [@ ID =’contenuStory’].问题是有一个< script>标记在第一个子div中.

我花了很多时间在网上和SO上搜索解决方案,但我找不到任何东西.我希望我没有错过任何明显的东西!

HTML响应(仅限目标节点):

我想要的东西:

Some textSome other text

我得到了什么:

Some textvar s = 'JavaScript I don't want';Some other text

我的代码

给定一个xpath选择器我正在使用以下函数来提取文本:

def getText(hxs):    if len(hxs) > 0:        l = hxs.select('string(.)')        if len(l) > 0:            s = l[0].extract().encode('utf-8')        else:            s = hxs[0].extract().encode('utf-8')        return s    else:        return 0

我尝试过使用XPath轴(像child :: script这样的东西),但无济于事.最佳答案尝试使用w3lib.HTML中的utils函数:

from w3lib.HTML import remove_Tags,remove_Tags_with_contentinput = hxs.select('//div[@ID="content"]').extract()output = remove_Tags(remove_Tags_with_content(input,('script',)))
总结

以上是内存溢出为你收集整理的python – 使用scrapy刮掉没有javascript代码的文本全部内容,希望文章能够帮你解决python – 使用scrapy刮掉没有javascript代码的文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1205277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)