Предотвратить ползать php? - PullRequest
0 голосов
/ 29 августа 2018

Я нашел этот скрипт в Интернете, и он хорошо работает для сканирования веб-сайтов и предоставления списка страниц, но для некоторых веб-сайтов он немного сходит с ума и индексирует страницы, заканчивающиеся на .php? Rp = / Knowledgebase & u = 94890 и аналогичные варианты. В итоге индексируются сотни бесполезных страниц и вариантов одной и той же страницы. В функции fetchSiteUrls () есть список исключений grep, который исключает некоторые URL, и я попытался добавить его к этому, но не могу заставить его работать. Есть предложения?

#!/bin/bash    

displaySpinner()
{
  local pid=$!
  local delay=0.3
  local spinstr='|/-\'
  while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
      local temp=${spinstr#?}
      printf "#    Please wait... [%c]  " "$spinstr" # Count number of backspaces needed (A = 25)
      local spinstr=$temp${spinstr%"$temp"}
      sleep $delay
      printf "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" # Number of backspaces from (A)
  done
  printf "                         \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" # Number of spaces, then backspaces from (A)
} # // displaySpinner()

savelocation=~/Desktop

fetchSiteUrls() {
  cd $savelocation && wget --spider -r -nd --max-redirect=30 $DOMAIN 2>&1 \
  | grep '^--' \
  | awk '{ print $3 }' \
  | grep -E -v '\.(css|js|map|xml|png|gif|jpg|JPG|bmp|txt|pdf)(\?.*)?$' \
  | grep -E -v '\?(p|replytocom)=' \
  | grep -E -v '\/wp-content\/uploads\/' \
  | grep -E -v '\/feed\/' \
  | grep -E -v '\/category\/' \
  | grep -E -v '\/tag\/' \
  | grep -E -v '\/page\/' \
  | grep -E -v '\/widgets.php$' \
  | grep -E -v '\/wp-json\/' \
  | grep -E -v '\/xmlrpc' \
  | sort -u \
  > $savelocation/$1.txt
} # // fetchSiteUrls()

# Prompt user for domain
echo "#    "
echo "#    Fetch a list of unique URLs for a domain."
echo "#    "
echo "#    Enter the full URL ( http://example.com )"

read -e -p "#    URL: " DOMAIN
DOMAIN=$DOMAIN
displaydomain=$(echo ${DOMAIN} | grep -oP "^http(s)?://(www\.)?\K.*")
filename=$(echo ${DOMAIN} | grep -oP "^http(s)?://(www\.)?\K.*" | tr "." "-")

echo "#    "
read -e -p "#    Save txt file as: " -i "${filename}" SAVEFILENAME
savefilename=$SAVEFILENAME

echo "#    "
echo "#    Fetching URLs for ${displaydomain} "

# Start process
fetchSiteUrls $savefilename & displaySpinner

# Process is complete, output message
echo "#    Finished!"
echo "#    "
echo "#    File Location: ${savelocation}/$savefilename.txt"
echo "#    "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...