web scrape python通过文本查找全部而不是按元素标记查找全部

时间:2017-05-15 13:51:58

标签: python web-scraping beautifulsoup

让我的例子使用技术这个词。 我想搜索网页上的所有文字。对于每个文本,我想找到每个元素标签,其中包含一个字符串" technology"并仅打印包含该单词的元素标签的内容。请帮我解决这个问题。

<load-on-startup> any int value </load-on-startup>

2 个答案:

答案 0 :(得分:2)

您应该使用按文字搜索,这可以使用text参数(在现代BeautifulSoup版本中重命名为string)来完成,通过函数和字符串中的子字符串检查:

for element in soup.find_all(text=lambda text: text and "technology" in text):
    print(element.get_text())

或者,通过regular expression pattern

import re

for element in soup.find_all(text=re.compile("technology")):
    print(element.get_text())

答案 1 :(得分:0)

由于您正在寻找“HTML结构”内部的数据而不是典型的data结构,因此您将不得不为此作业编写HTML解析器。 Python通常不知道“这里的某些字符串”与其他地方的括号中包含的另一个字符串有关。

可能有一个图书馆,但我觉得没有:(