Adblock, Easylist y expresiones regulares

XaPu69

Hola a todos,

Vengo a plantear una duda en la que estoy totalmente pez, por lo que cualquier aportación, por mínima que sea, será muy util para mi.

Dispongo de un porrón de peticiones http. Mi objetivo es conocer cuales de esas peticiones web corresponden con advertising y cuales no. Ni siquiera eso, me valdría con conocer cuales de esas peticiones http son consideradas publicidad (y por tanto bloqueadas) en los típicos adblockers (ABP, Ublock etc). Estos adblockers utilizan listas en las que se programan las "reglas" que matchean o no con las peticiones web que ejecutamos. (Un ejemplo, Easylist https://easylist-downloads.adblockplus.org/easylist.txt )

El problema que tengo, es que no consigo encontrar la lógica a estas reglas. Al principio pensaba que eran expresiones regulares que se aplicaban sobre las url, pero el formato no concuerda con el de las expresiones regulares (cuantificadores, agrupadores, etc).

Mi pregunta es: ¿Alguien podría orientarme sobre qué camino seguir para transformar estas reglas en expresiones regulares, o bien interpretar estas mismas reglas desde algún lenguaje de programación o scripting habitual (python, R, Java) para conseguir clasificar estas peticiones?

Gracias de antemano

EDIT: He averiguado cierta lógica en la creación de filtros tal y como vienen en esta página https://adblockplus.org/es/filters pero no se si se trata de algún tipo de estandar o cómo los interpreta ABP para poder hacerlo de manera similar

B

Las reglas de los filtros si mal no recuerdo están aquí: https://adblockplus.org/filter-cheatsheet (abajo hay una tabla que lo resume todo, es como el link que has puesto pero con mas detallitos).

Por lo que veo no parece ser muy retorcido el convertirlo a regex, y que yo sepa (que alguien me corrija si me equivoco) no parece ser un estándar. He usado un porrón de regexs de diferentes librerías y no se me asemeja a ninguna que yo recuerde.

Usuarios habituales