编辑
希望明白你的意思 - 如果是这样,应该改进问题。要从 javascript 中获取信息,您可以使用正则表达式解析响应:
import requests
import json
import re
r = requests.get('https://www.spanishdict.com/conjugation')
m = re.search(r'window.SD_COMPONENT_DATA = ({.*})', r.text)
['https://www.spanishdict.com/conjugate/'+w for x in json.loads(m.group(1))['searchQuickLinkSections'] for w in x['words']]
输出
['https://www.spanishdict.com/conjugate/tener',
'https://www.spanishdict.com/conjugate/hacer',
'https://www.spanishdict.com/conjugate/ser',
'https://www.spanishdict.com/conjugate/estar',
'https://www.spanishdict.com/conjugate/haber',
'https://www.spanishdict.com/conjugate/ir',
'https://www.spanishdict.com/conjugate/poder',
'https://www.spanishdict.com/conjugate/decir',
'https://www.spanishdict.com/conjugate/cerrar',
'https://www.spanishdict.com/conjugate/mentir',
'https://www.spanishdict.com/conjugate/dormir',
'https://www.spanishdict.com/conjugate/recordar',
'https://www.spanishdict.com/conjugate/seguir',
'https://www.spanishdict.com/conjugate/medir',
'https://www.spanishdict.com/conjugate/adquirir',
'https://www.spanishdict.com/conjugate/jugar',
'https://www.spanishdict.com/conjugate/vestirse',
'https://www.spanishdict.com/conjugate/divertirse',
'https://www.spanishdict.com/conjugate/acostarse',
'https://www.spanishdict.com/conjugate/ponerse',
'https://www.spanishdict.com/conjugate/despertarse',
'https://www.spanishdict.com/conjugate/sentirse',
'https://www.spanishdict.com/conjugate/levantarse',
'https://www.spanishdict.com/conjugate/sentarse',
'https://www.spanishdict.com/conjugate/gustar',
'https://www.spanishdict.com/conjugate/alegrar',
'https://www.spanishdict.com/conjugate/quedar',
'https://www.spanishdict.com/conjugate/encantar',
'https://www.spanishdict.com/conjugate/parecer',
'https://www.spanishdict.com/conjugate/faltar',
'https://www.spanishdict.com/conjugate/doler',
'https://www.spanishdict.com/conjugate/interesar']
要获得预期的输出,您应该有一个动词列表。虽然您的问题中没有提供来源,但这是生成此类信息的良好开端,但我使用了列表 verbs-top-500 和列表理解。
对于在其href 中包含translate 的所有<a>,它将您的网址与直接子<div><a> 中的文本动词连接起来:
['https://www.spanishdict.com/conjugate/'+a.div.text for a in soup.select('a[href*="translate"]')]
示例
import requests,json
from bs4 import BeautifulSoup
url='https://www.spanishdict.com/lists/1690101/verbs-top-500'
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
}
r =requests.get(url,headers=headers)
soup=BeautifulSoup(r.text, 'lxml')
urls = ['https://www.spanishdict.com/conjugate/'+a.div.text for a in soup.select('a[href*="translate/"]')]
输出
['https://www.spanishdict.com/conjugate/procurar', 'https://www.spanishdict.com/conjugate/podar', 'https://www.spanishdict.com/conjugate/pillar', 'https://www.spanishdict.com/conjugate/perrear', 'https://www.spanishdict.com/conjugate/perfeccionar', 'https://www.spanishdict.com/conjugate/perdonar', 'https://www.spanishdict.com/conjugate/pegar', 'https://www.spanishdict.com/conjugate/pasear', 'https://www.spanishdict.com/conjugate/ordenar', 'https://www.spanishdict.com/conjugate/ondear', 'https://www.spanishdict.com/conjugate/ojalar', 'https://www.spanishdict.com/conjugate/ocultar', 'https://www.spanishdict.com/conjugate/nombrar',...]