Python 3.x 提取innerhtml Python的基于URL的文本

Python 3.x 提取innerhtml Python的基于URL的文本,python-3.x,selenium-webdriver,web-scraping,Python 3.x,Selenium Webdriver,Web Scraping,我有多个网站,我想得到“联系我们”的网址为每个网站。URL不一定包含在所有网站的同一类中。然而,所有网站的innerHTML基本上都包含“联系人”一词 如果innerhtml包含特定单词,是否有方法从网页中提取URL。 例如,在下面的HTML中,如果innerhtml包含单词“contact”(不区分大小写),我想提取URL 到目前为止,我可以访问以下代码,但它似乎不起作用:- link=[] driver.get(main_url) elements = driver.find_element

我有多个网站,我想得到“联系我们”的网址为每个网站。URL不一定包含在所有网站的同一类中。然而,所有网站的innerHTML基本上都包含“联系人”一词

如果innerhtml包含特定单词,是否有方法从网页中提取URL。 例如,在下面的HTML中,如果innerhtml包含单词“contact”(不区分大小写),我想提取URL

到目前为止,我可以访问以下代码,但它似乎不起作用:-

link=[]
driver.get(main_url)
elements = driver.find_elements_by_xpath("//a").get_attribute('href')   #  the href is not always contained in a tag
for el in elements:
    if 'contact'.casefold() in str(el.text):
         link.append(el.get_attribute('href'))
非常感谢您的帮助,请尝试以下方法:-

r = requests.get(url, headers = headers)
soup = BeautifulSoup(r.content, 'lxml')
links = soup.find_all("a")
link=[]
for link in links:
    if 'contact' in link.text.lower():
          link.append(link.get(a.href))
您提到的url的输出为:-

<a href="http://www.candp.com/bin/index.asp?id=565B626C686E79504B575A4D626E" target="_blank"><font face="Verdana" size="1">Get more details</font></a>

尝试以下代码:

link=[]
elements = driver.find_elements_by_xpath("//a[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') , 'contact')]")
for el in elements:
    link.append(el.get_attribute("href"))

它给出了一个空列表
<a href="http://www.candp.com/bin/index.asp?id=565B626C686E79504B575A4D626E" target="_blank"><font face="Verdana" size="1">Get more details</font></a>
link=[]
elements = driver.find_elements_by_xpath("//a[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') , 'contact')]")
for el in elements:
    link.append(el.get_attribute("href"))