Chan eil clàr HTML falamh an-còmhnaidh a' ciallachadh nach eil clàran seach-rathadair san fhreagairt. Bidh cuid de liostaichean a' cur nithean JSON am broinn ghairmean JavaScript agus a' lìonadh nan sreathan nas fhaide air adhart.

Airson stòr a fhuaireadh mu thràth a chleachdas an t-ionghabhal sònraichte gp.insertPrx agus nì JSON na dhèidh:

import ipaddress
import json
import re

decoder = json.JSONDecoder()
endpoints = set()
for marker in re.finditer(r"gp[.]insertPrx\(\s*", html):
    try:
        row, end = decoder.raw_decode(html, marker.end())
        if not isinstance(row, dict):
            continue
        address = ipaddress.ip_address(row["PROXY_IP"])
        port = int(row["PROXY_PORT"], 16)
    except (ValueError, KeyError, TypeError):
        continue
    if 1 <= port <= 65535 and html[end:].lstrip().startswith(");"):
        endpoints.add((str(address), port))

Is e html teacsa an stòrais, chan e nì brabhsair. Lorgas an abairt riaghailteach ionghabhal aithnichte; mìnichidh JSONDecoder far a bheil an luach JSON a' crìochnachadh. Mar sin thèid seachad air oidhirp JSON neadach a pharsadh le abairt riaghailteach a-mhàin.

Tha raon a' phuirt san eisimpleir gu soilleir heicsidheachúlach: tha C38 a' ciallachadh 3128 deicheach. Na cuir bonn 16 an sàs air raon deicheach solaraiche eile dìreach air sgàth 's gur port a chanar ris an dà rud.

Is parsair airson a' chruth a chaidh ainmeachadh a tha seo, chan e eadar-theangair JavaScript. Feumaidh litireil nithean le comharran-briathair singilte, luachan àireamhaichte agus abairtean JavaScript eile eadar-aghaidh dàta eile a tha air a chlàradh. Na ruith còd duilleige neo-riaghailteach gus liosta chrìochan fhaighinn.

Dearbha cùmhnant an stòrais agus cùm raointean protocol air leth. Ma tha sreathan HTML lìonta san stòr na àite, cleachd toirt a-mach chrìochan a rèir sreath seach am parsair ionghabhail JavaScript seo. Chan eil toirt a-mach seòlaidh agus puirt a' dearbhadh gu bheil an crìoch a' tabhann seirbheis seach-rathadair a ghabhas cleachdadh an-dràsta.

Artaigilean co-cheangailte