我正在使用python selenium来捕获源代码
elem = browser.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")
我需要从包含关键字的源代码中提取元素 - 如jam,honey,choc和print到名为recipes.txt的文件,例如
/items/John-string-jam-string.html
这些是href值
格式的示例<a href="/items/John-string-jam-string.html"
<a href="/items/Paul-string-string-jam-string.html"
<a href="/items/string-Mary-honey-string.html"
<a href="/items/choc-string-string.html"
还有许多其他<a href =/items/
没有提及我不想要的关键词。
我是蟒蛇和硒的新手,但我很享受挑战。在此先感谢您的帮助。
答案 0 :(得分:2)
有多种方法可以解决它。例如,使用XPath定位器和contains()
:
links = browser.find_elements_by_xpath("//a[contains(@href, 'jam') or contains(@href, 'honey') or contains(@href, 'choc')]")
或者,使用CSS选择器和*=
表示法:
links = browser.find_elements_by_css_selector("a[href*=jam],a[href*=honey],a[href*=choc]")
如果您不想对表达式中的搜索词值进行“硬编码”,则可以动态构建定位器:
words = ["jam", "honey", "choc"]
condition = " or ".join("contains(@href, '%s')" % word for word in words)
links = browser.find_elements_by_xpath("//a[%s]" % condition)
要提取/打印出实际的href
属性值,请使用.get_attribute()
:
for link in links:
print(link.get_attribute("href"))