Python爬虫系列:提高解析效率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫系列:提高解析效率相关的知识,希望对你有一定的参考价值。

如果仅仅因为想要查找文档中的<a>标签而将整片文档进行解析,实在是浪费内存和时间.最快的方法是从一开始就把<a>标签以外的东西都忽略掉. SoupStrainer 类可以定义文档的某段内容,这样搜索文档时就不必先解析整篇文档,只会解析在 SoupStrainer 中定义过的文档. 创建一个 SoupStrainer 对象并作为 parse_only 参数给 BeautifulSoup 的构造方法即可

目标文档

技术分享

from bs4 import BeautifulSoup, NavigableString
from bs4 import SoupStrainer

only_a_tags = SoupStrainer("a")
only_tags_with_id_link2 = SoupStrainer(id="link2")


def is_short_string(string):
return len(string) < 6


only_short_strings = SoupStrainer(text=is_short_string)

soup = BeautifulSoup(html_doc, "lxml")
print(‘1------------找到所有a元素‘)
print(BeautifulSoup(html_doc, "html.parser", parse_only=only_a_tags).prettify())
print(‘2------------找到id=link2的元素‘)
print(BeautifulSoup(html_doc, "html.parser", parse_only=only_tags_with_id_link2).prettify())
print(‘3------------找到元素长度小于10的元素‘)
print(BeautifulSoup(html_doc, "html.parser", parse_only=only_short_strings).prettify())

 

今天,我们的爬虫系列基础就算告一段落。这些,就是公司培训新手的教程。实际上,在项目的实际过程中,还有太多坑,知识库里面的东西后面逐步分享出来。

码字不易,期盼点赞




















以上是关于Python爬虫系列:提高解析效率的主要内容,如果未能解决你的问题,请参考以下文章

爬虫效率怎么提高,怎么完成企业需求,真正体验到企业级数据下载!

Python爬虫如何避免爬取网站访问过于频繁

Python多线程并发通用模板

python的scrapy框架爬虫基础

Python爬虫系列之 xpath:html解析神器

python爬虫需要安装哪些库