如何从 python 中的锚点 href 属性检索文本

how to retrieve text from anchor href attribute in python

假设我有这样一个 link:

link = '<a href="some text">...</a>'

有什么方法可以从锚点 href 属性中检索文本,以便结果如下所示:

hrefText = 'some text'

提前谢谢你

这是一个方法:

import re
print re.search('(?<=<a href=")[^"]+',link).group(0)

或者,

print re.search(r'<a\s+href="([^"]+)',link).group(1)

虽然您可以拆分或使用正则表达式,但对于更模块化强大的工具集,您可以使用

BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/

示例代码:

from bs4 import BeautifulSoup 
link = '<a href="some text">...</a>'
soup = BeautifulSoup(link, "html.parser")
for anchor in soup.find_all('a', href=True):
    print anchor['href']

或者,对于单个函数,您可以这样做:

from bs4 import BeautifulSoup 

def getHref( link ):
    soup = BeautifulSoup(link, "html.parser")
    return soup.find_all('a', href=True)[0]['href']

您可以为此使用 bs4 和请求库。

import requests
from bs4 import BeautifulSoup
url = 'https://examplesite.com/'
source = requests.get(url)
text = source.text
soup = BeautifulSoup(text, "html.parser")
for link in soup.findAll('a', {}):
   href = '' + link.get('href')
   title = link.string
   print("hrefText = ", href)

希望这对您有所帮助:)