如何从 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)
希望这对您有所帮助:)
假设我有这样一个 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)
希望这对您有所帮助:)