【问题标题】:Scraping URLs that are not at plain sight抓取不可见的 URL
【发布时间】:2019-02-28 16:34:31
【问题描述】:

我正在练习抓取这个网页: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

【问题讨论】:

标签: html python-3.x web-scraping web-crawler


【解决方案1】:

您实际上可以使用请求 url 获取它并获取 json 响应。它将返回所有促销信息,您可以访问以该 json 格式关联的 url:

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  

【讨论】:

    【解决方案2】:

    尝试使用 selenium/web 驱动程序。

    【讨论】:

      猜你喜欢
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2020-02-21
      • 2010-12-28
      相关资源
      最近更新 更多