我正在使用requests_html
库来抓取一个网站,但我同时从该网站抓取的文本中获取adsense。该示例如下所示:
some text some text some text some text and then this: (adsbygoogle = window.adsbygoogle || []).push({});
some text some text some text after a line break and then this: sas.cmd.push(function() { sas.call("std", { siteId: 301357, // pageId: 1101926, // Page : Seneweb_AF/rg formatId: 49048, // Format : Pave 2 300x250 target: '' // Ciblage }); });
现在我怎样才能去掉上面的斜体粗体文本呢
假设您能够在需要删除不需要的部分之前将文本作为字符串保存,则可以搜索并替换
如果
(adsbygoogle = window.adsbygoogle || []).push({});
始终是完全相同的字符串(每次都包含相同的空格),则可以使用str.replace()
。 见How to use string.replace() in python 3.x如果文本每次都不完全相同,并且我猜至少您展示的第二个示例每次都不相同,那么您可以使用正则表达式。见the python documentation of the ^{} module 。
如果在程序中只使用少数正则表达式,则可以调用
re.sub
, 大概是这样的:可能需要一些尝试和错误get
pattern
来匹配与第二个示例类似的每个案例如果检索到的文章中有新行(几乎肯定会有),则需要
re.MULTILINE
和re.DOTALL
以使某些正则表达式模式跨行边界工作,这似乎是第二个示例所需要的如果最终不得不使用多个正则表达式,则可以在开始刮取之前使用
re.compile
编译它们:稍后,当您有要从中删除片段的文本时,可以按如下方式进行搜索和替换:
如果
requests_html
没有处理这个问题的内置机制,那么解决方案就是使用纯python;这是我到目前为止发现的:其中
article
是被刮伤物品的html
相关问题 更多 >
编程相关推荐