我正在练习抓取以下网页:https://banco.santander.cl/beneficios/todos?segmento=s-personas&categoria=sabores
它包含与食品有关的桑坦德的好处,我要做的是获取显示的不同选项的链接,但是当我转到源页面时,我找不到此信息。
我一直在阅读,并且我了解到您无法在源代码中隐藏任何信息,但是可以以某种方式“加密”。我想知道在我正在处理的这种特殊情况下发生了什么,它被“加密”了吗?还是其他?
例如,第一个产品是Work /Café,URL是:https://banco.santander.cl/beneficios/promociones/work-cafe?segmento=s-personas&categoria=sabores 如何在源代码中找到此URL?或者为什么我找不到它
源代码为:source
答案 0 :(得分:2)
您实际上可以使用请求url来获取它,并获取json响应。它将返回所有促销信息,您可以访问以json格式关联的网址:
import requests
url = 'https://banco.santander.cl/beneficios/promociones.json'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'}
params = {
'per_page': '500',
'page': '1'}
response = requests.get(url, headers=headers, params = params).json()
promotions = response['promociones']
# This will print ALL promototions
for promo in promotions:
print (promo['url'])
# To print just a specific category as defined in the json response
for promo in promotions:
if promo['category'] == 'sabores':
print (promo['url'])
输出:
https://banco.santander.cl/beneficios/sabores/promociones/work-cafe
https://banco.santander.cl/beneficios/sabores/promociones/le-due-torri-4
https://banco.santander.cl/beneficios/sabores/promociones/senz-sushi-nikkei
https://banco.santander.cl/beneficios/sabores/promociones/chili-s
https://banco.santander.cl/beneficios/sabores/promociones/1756
https://banco.santander.cl/beneficios/sabores/promociones/idilico-2
https://banco.santander.cl/beneficios/sabores/promociones/la-celia-restobar
https://banco.santander.cl/beneficios/sabores/promociones/au-restaurante
https://banco.santander.cl/beneficios/sabores/promociones/ph-banh-mi-by-vietnam-discovery-2
https://banco.santander.cl/beneficios/sabores/promociones/vietnam-discovery-3
https://banco.santander.cl/beneficios/sabores/promociones/majestic-2
https://banco.santander.cl/beneficios/sabores/promociones/bozzo-2
https://banco.santander.cl/beneficios/sabores/promociones/tambo-2
https://banco.santander.cl/beneficios/sabores/promociones/boost-2
https://banco.santander.cl/beneficios/sabores/promociones/panko-2
https://banco.santander.cl/beneficios/sabores/promociones/mizu-sushi
https://banco.santander.cl/beneficios/sabores/promociones/fork-2
https://banco.santander.cl/beneficios/sabores/promociones/hacienda-patagonia-2
https://banco.santander.cl/beneficios/sabores/promociones/san-marino-puerto-montt-2
https://banco.santander.cl/beneficios/sabores/promociones/toro-bayo-talca
https://banco.santander.cl/beneficios/sabores/promociones/burger-club-la-serena-2
https://banco.santander.cl/beneficios/sabores/promociones/vivace-talca-2
https://banco.santander.cl/beneficios/sabores/promociones/cambalache
https://banco.santander.cl/beneficios/sabores/promociones/las-vacas-gordas-2
https://banco.santander.cl/beneficios/sabores/promociones/castillo-forestal-2
https://banco.santander.cl/beneficios/sabores/promociones/burger-king-3
https://banco.santander.cl/beneficios/sabores/promociones/rosa-amelia
https://banco.santander.cl/beneficios/sabores/promociones/montana-steak-house-bar
https://banco.santander.cl/beneficios/sabores/promociones/zocca
https://banco.santander.cl/beneficios/sabores/promociones/club-de-yates-puerto-montt
https://banco.santander.cl/beneficios/sabores/promociones/museo-peruano
https://banco.santander.cl/beneficios/sabores/promociones/pf-chang-s-2
答案 1 :(得分:1)
尝试使用Selenium / Web驱动程序。