【问题标题】:Python beautiful soup scrape hrefPython美汤刮href
【发布时间】:2021-09-16 05:48:00
【问题描述】:
【问题讨论】:
标签:
python
web-scraping
beautifulsoup
【解决方案1】:
您可以使用下面的代码获取网页中的所有链接。如果你想要特定部分的网页链接。更改soup.findAll 函数。
from bs4 import BeautifulSoup
from urllib.request import urlopen
URL = f"http://www.saij.gob.ar/resultados.jsp?r=%20fecha-rango:[19460101%20TO%2020211231]&b=avanzada&o=0&p=25&f=Total|Tipo%20de%20Documento/Legislaci%C3%B3n|Fecha|Organismo|Publicaci%C3%B3n|Tema|Estado%20de%20Vigencia|Autor|Jurisdicci%C3%B3n/Nacional&v=colapsada"
page = urlopen(URL).read()
soup = BeautifulSoup(page,'lxml')
links = soup.findAll('a')
for link in links:
try:
if(link['href'][0]=='/'):
print (URL+link['href'])
elif(link['href'][0]=='h'):
print(link['href'])
else:
pass
except:
pass
输出:
【解决方案2】:
您在页面上看到的链接是通过 JavaScript 以 Json 形式加载的。可以使用requests模块来模拟Ajax请求:
import json
import requests
api_url = "http://www.saij.gob.ar/busqueda"
params = {
"r": " fecha-rango:[19460101 TO 20211231]",
"o": "0",
"p": "25",
"f": "Total|Tipo de Documento/Legislación|Fecha|Organismo|Publicación|Tema|Estado de Vigencia|Autor|Jurisdicción/Nacional",
"s": "",
"v": "colapsada",
}
cookies = {"IDNODO": ".cluster3"}
data = requests.get(api_url, params=params, cookies=cookies).json()
# uncomment to print all data:
# print(json.dumps(data, indent=4))
for r in data["searchResults"]["documentResultList"]:
doc = json.loads(r["documentAbstract"])
print(
"http://www.saij.gob.ar/"
+ doc["document"]["metadata"]["friendly-url"]["description"]
+ "/"
+ doc["document"]["metadata"]["uuid"]
)
打印:
http://www.saij.gob.ar/26-nacional-declaracion-monumento-historico-nacional-finca-samay-huasi-rioja-dn20210000026-2021-01-19/123456789-0abc-620-0000-1202soterced
http://www.saij.gob.ar/27-nacional-reglamentacion-regimen-legal-contrato-teletrabajo-dn20210000027-2021-01-19/123456789-0abc-720-0000-1202soterced
http://www.saij.gob.ar/31-nacional-exencion-pago-derecho-importacion-tasas-estadistica-comprobacion-gravan-importacion-para-consumo-buque-investigacion-pesquera-mar-argentino-al-instituto-nacional-investigacion-desarrollo-pesquero-dn20210000031-2021-01-20/123456789-0abc-130-0000-1202soterced
http://www.saij.gob.ar/30-nacional-aprobacion-modelo-contrato-garantia-fondo-financiero-para-desarrollo-cuenca-plata-modelo-contrato-contragarantia-gobierno-provincia-chaco-fin-cooperar-ejecucion-proyecto-inversion-social-salud-publica-provincia-chaco-dn20210000030-2021-01-20/123456789-0abc-030-0000-1202soterced
http://www.saij.gob.ar/35-nacional-modificacion-decreto-488-2020-sobre-actualizacion-precio-nafta-gasoil-desde-12-marzo-2021-dn20210000035-2021-01-22/123456789-0abc-530-0000-1202soterced
http://www.saij.gob.ar/36-nacional-autorizacion-universidad-atlantida-argentina-funcionar-como-institucion-universitaria-privada-forma-definitiva-dn20210000036-2021-01-22/123456789-0abc-630-0000-1202soterced
http://www.saij.gob.ar/38-nacional-ampliacion-temario-sesiones-extraordinarias-dn20210000038-2021-01-22/123456789-0abc-830-0000-1202soterced
http://www.saij.gob.ar/41-nacional-autorizacion-forma-provisoria-creacion-funcionamiento-instituto-universitario-agua-saneamiento-dn20210000041-2021-01-22/123456789-0abc-140-0000-1202soterced
http://www.saij.gob.ar/42-nacional-reglamentacion-ley-aporte-solidario-extraordinario-para-ayudar-morigerar-efectos-pandemia-dn20210000042-2021-01-28/123456789-0abc-240-0000-1202soterced
http://www.saij.gob.ar/17-nacional-homologacion-acta-acuerdo-comision-negociadora-convenio-colectivo-trabajo-general-para-administracion-publica-nacional-fecha-6-junio-2019-dn20210000017-2021-01-14/123456789-0abc-710-0000-1202soterced
http://www.saij.gob.ar/22-nacional-prorroga-ciento-ochenta-dias-intervencion-instituto-nacional-contra-discriminacion-xenofobia-racismo-dn20210000022-2021-01-18/123456789-0abc-220-0000-1202soterced
http://www.saij.gob.ar/61-nacional-designacion-mision-permanente-agregado-naval-embajada-republica-argentina-reino-espana-extension-sobre-reino-marruecos-reino-paises-bajos-dn20210000061-2021-01-29/123456789-0abc-160-0000-1202soterced
http://www.saij.gob.ar/107-nacional-autorizacion-forma-provisoria-creacion-funcionamiento-instituto-universitario-para-desarrollo-productivo-tecnologico-empresarial-argentina-dn20210000107-2021-02-21/123456789-0abc-701-0000-1202soterced
http://www.saij.gob.ar/141-nacional-designacion-embajador-extraordinario-plenipotenciario-republica-republica-croacia-dn20210000141-2021-03-04/123456789-0abc-141-0000-1202soterced
http://www.saij.gob.ar/134-nacional-modificacion-estructura-organizativa-secretaria-comunicacion-prensa-presidencia-nacion-dn20210000134-2021-03-02/123456789-0abc-431-0000-1202soterced
http://www.saij.gob.ar/104-nacional-reglamentacion-formula-movilidad-jubilatoria-dn20210000104-2021-02-12/123456789-0abc-401-0000-1202soterced
http://www.saij.gob.ar/105-nacional-duelo-nacional-motivo-fallecimiento-ex-presidente-republica-argentina-doctor-carlos-saul-menem-dn20210000105-2021-02-14/123456789-0abc-501-0000-1202soterced
http://www.saij.gob.ar/103-nacional-creacion-cargo-extraescalafonario-representante-especial-para-asuntos-derechos-humanos-ambito-internacional-ministerio-relaciones-exteriores-comercio-internacional-culto-dn20210000103-2021-02-12/123456789-0abc-301-0000-1202soterced
http://www.saij.gob.ar/106-nacional-incorporacion-temario-tratar-honorable-congreso-nacion-actual-periodo-sesiones-extraordinarias-modificacion-impuesto-ganancias-dn20210000106-2021-02-17/123456789-0abc-601-0000-1202soterced
http://www.saij.gob.ar/66-nacional-decreto-necesidad-urgencia-extiende-hasta-31-marzo-2021-congelamiento-alquileres-suspension-desalojos-dn20210000066-2021-01-29/123456789-0abc-660-0000-1202soterced
http://www.saij.gob.ar/113-nacional-habilitacion-pago-sentencia-dictada-corte-interamericana-derechos-humanos-caso-perrone-preckel-vs-argentina-concepto-indemnizacion-dn20210000113-2021-02-19/123456789-0abc-311-0000-1202soterced
http://www.saij.gob.ar/114-nacional-habilitacion-pago-sentencia-dictada-corte-interamericana-derechos-humanos-caso-hernandez-vs-argentina-concepto-indemnizacion-dn20210000114-2021-02-19/123456789-0abc-411-0000-1202soterced
http://www.saij.gob.ar/117-nacional-habilitacion-pago-sentencia-dictada-corte-interamericana-derechos-humanos-caso-jenkins-vs-argentina-concepto-indemnizacion-reintegro-al-fondo-asistencia-legal-victimas-mencionado-organismo-jurisdiccional-dn20210000117-2021-02-19/123456789-0abc-711-0000-1202soterced
http://www.saij.gob.ar/115-nacional-habilitacion-pago-sentencia-dictada-corte-interamericana-derechos-humanos-caso-lopez-otros-vs-argentina-concepto-indemnizacion-reintegro-al-fondo-asistencia-legal-victimas-mencionado-organismo-jurisdiccional-dn20210000115-2021-02-19/123456789-0abc-511-0000-1202soterced
http://www.saij.gob.ar/116-nacional-habilitacion-pago-sentencia-dictada-corte-interamericana-derechos-humanos-caso-romero-feris-vs-argentina-concepto-indemnizacion-dn20210000116-2021-02-19/123456789-0abc-611-0000-1202soterced