我希望只收到符合特定条件的链接
I wish to receive only links that match a specific criteria
我有这个 Selenium 代码:
driver.get("https://www.youtube.com/")
link_mix = driver.find_elements_by_tag_name('a')
for linked in link_mix:
print(linked.get_attribute('href'))
我希望获得形式为 youtube.com/contentcodexxxxxx
的链接,而不是任何其他超链接,例如 header 链接。
Selenium 不提供使用任何过滤器查找 link 标签的任何方式。
相反,您必须遍历检索到的元素并丢弃任何不需要的元素。
driver.get("https://www.youtube.com/")
link_mix = driver.find_elements_by_tag_name('a')
for linked in link_mix:
if not linked.get_attribute('href').startswith('youtube.com/contentcode'):
continue
print(linked.get_attribute('href'))
您可以从多个角度处理这个问题。
第一个非常简单的方法是在 URL.
中检查该字符串
link_mix = [x for x in link_mix if "youtube.com/contentcode" in x.get_attribute('href')]
此外,而不是做
link_mix = driver.find_elements_by_tag_name('a')
您可以通过指定要查找的链接所在的 html 元素来缩小范围。
html_body = driver.find_element_by_tag_name('body')
link_mix = html_body.find_elements_by_tag_name('a')
这只会找到 html 正文内的超链接,如果网页包含这些链接,则会忽略页眉或页脚中的链接。如果您知道这些链接可以在另一个 html 元素中进一步缩小,您可以替换第一个“find_element”。请注意 find_element_by_tag_name
returns 如果没有找到这样的标签,则会出现异常。
我有这个 Selenium 代码:
driver.get("https://www.youtube.com/")
link_mix = driver.find_elements_by_tag_name('a')
for linked in link_mix:
print(linked.get_attribute('href'))
我希望获得形式为 youtube.com/contentcodexxxxxx
的链接,而不是任何其他超链接,例如 header 链接。
Selenium 不提供使用任何过滤器查找 link 标签的任何方式。
相反,您必须遍历检索到的元素并丢弃任何不需要的元素。
driver.get("https://www.youtube.com/")
link_mix = driver.find_elements_by_tag_name('a')
for linked in link_mix:
if not linked.get_attribute('href').startswith('youtube.com/contentcode'):
continue
print(linked.get_attribute('href'))
您可以从多个角度处理这个问题。
第一个非常简单的方法是在 URL.
中检查该字符串link_mix = [x for x in link_mix if "youtube.com/contentcode" in x.get_attribute('href')]
此外,而不是做
link_mix = driver.find_elements_by_tag_name('a')
您可以通过指定要查找的链接所在的 html 元素来缩小范围。
html_body = driver.find_element_by_tag_name('body')
link_mix = html_body.find_elements_by_tag_name('a')
这只会找到 html 正文内的超链接,如果网页包含这些链接,则会忽略页眉或页脚中的链接。如果您知道这些链接可以在另一个 html 元素中进一步缩小,您可以替换第一个“find_element”。请注意 find_element_by_tag_name
returns 如果没有找到这样的标签,则会出现异常。