如何有效地抓取可见网页内容
网页抓取涉及从网页中提取特定数据,但限制结果可能具有挑战性仅显示可见文本。 BeautifulSoup,一个流行的网页抓取库,简化了这个过程。
理解问题
要抓取可见文本,排除脚本等元素(<script>)至关重要。 )、注释 (<!-- -->)、CSS (<style>) 和其他不可见</script>
BeautifulSoup 的解决方案
这是一个使用 BeautifulSoup 的 findAll() 方法和自定义过滤器的简单解决方案:
from bs4 import BeautifulSoup from bs4.element import Comment from urllib.request import urlopen def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return " ".join(t.strip() for t in visible_texts) html = urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
解释
code:
以上是如何使用BeautifulSoup提取可见网页内容?的详细内容。更多信息请关注PHP中文网其他相关文章!