Поиск возможных параметров URL - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь написать веб-скребок в Ruby / Mechanize.Одна вещь, которую я пытаюсь реализовать, - это функция, которая может найти потенциальные параметры URL.Вот фрагмент кода:

require 'mechanize'
def find_parameters(url)
    mechanize = Mechanize.new
    result = []
    # build list of potential parameters at URL
    result # return
end

Представьте, что отправляете передачу в URL http://example.com/.На example.com есть файл index.php, который принимает вызов параметра URL baz и печатает значение этого параметра на странице.

<?php
    if (isset($_GET['baz'])) {
        echo $_GET['baz'];
    }
?>

Таким образом http://example.com?baz=123 перейдет кстраница, которая печатает 123.Из исходного кода мы знаем, что baz является потенциальным параметром, есть ли способ заставить Mechanize найти все потенциальные параметры и вернуть их список?

Пример: find_parameters('http://example.com/') => ['baz']

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете настроить строку:

require 'mechanize'
def find_parameters(url)
  mechanize = Mechanize.new
  result = []
  mechanize.get(url)  #go to the page
  # get the current page, split in the possible parameters list, split by parameters
  # (rescue in case there are no params)
  ( mechanize.page.uri.to_s.split("?")[1].split("&") rescue []).each do |key_val| 
    # split the pair of param and value, and store the param name
    result << key_val.split("=")[0]
  end
  return result
end
...