HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.06.2013, 13:51
Martyn911
Новичок
Регистрация: 10.01.2012
Сообщений: 0
Провел на форуме:
0

Репутация: 0
По умолчанию

Здравствуйте уважаемые форумчане, понадобилось отправить пост запрос на несколько тысяч сайтов и сохранить в файл те, ответ которых удовлетворяет требованиям.

Подробнее что надо:

1. Отправить пост запрос на скрипт http://site.ru/test.php

2. Получить html страницы

3. найти в коде заданный текст

4. если текст нашли сохранить ссылку в файл

Есть ли софт выполняющий что-то подобное или может скрипт, посоветуйте пожалуйста или поделитесь, заранее благодарен за отзывчивость
 
Ответить с цитированием

  #2  
Старый 18.07.2013, 18:03
OverLocker
Новичок
Регистрация: 07.07.2012
Сообщений: 0
Провел на форуме:
0

Репутация: 0
По умолчанию

Вот наверстал на коленке, быдлокод малость из-за глобалов

Ссылка

Необходим питон 2.7

Файлы:

log.txt - сюда заносятся подходящие урлы

needText.txt - Сюда пишешь текст который надо искать в страницах

post.txt - пост запрос потипу var=value&var2=value2

urls.txt - Удрес к странице, с новой строки​

Доп настройки в poster.py его же и запускать через python poster.py

poster.py

Код:
import Spider, threading, time, sys

LOCK = threading.RLock()
THREADS_COUNT = 10
urlsFile = open("urls.txt", "r")
needText = ""

file = open("post.txt");
post = file.read()
file.close()

def main():
	global THREADS_COUNT, needText
	file = open("needText.txt", "r")
	needText = file.read()
	file.close()
	for i in xrange(1, THREADS_COUNT):
		print "Start "+str(i)
		thread_i = threading.Thread(target=worker)
		thread_i.start()
	while threading.active_count() >1:
		time.sleep(2)
	print "End"
	sys.exit(0)

def worker():
	while True:
		quest = getQuest()
		if quest != False:
			print "Thread  get quest "+quest['url'].strip()
			sp = Spider.Spider()
			sp.SetPost(quest['post'])
			sp.Go(quest['url'].strip())
			pg = sp.readAll()
			if pg.find(quest['need']) != -1:
				logWrite(quest['url'].strip()+"\r\n");
				print "Thread "+str(id)+" find "+quest['url']
			else:
				print "Url "+str(quest['url'])+" false"
			sp.exit()
		else:
			return 0
def logWrite(str):
	global LOCK
	LOCK.acquire()

	file = open("log.txt", "a")
	file.write(str)
	file.close()

	LOCK.release()

def getQuest():
	global urlsFile, LOCK, needText, post
	LOCK.acquire()
	quest = {}
	quest['need'] = needText
	quest['url'] = urlsFile.readline()
	quest['post'] = post
	if not quest['url']:
		quest = False
	LOCK.release()
	return quest

main()
 
Ответить с цитированием

  #3  
Старый 18.07.2013, 18:14
XAMEHA
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме:
2268

Репутация: 0
По умолчанию

Обычно в таких случаях пишут софт под конкретную задачу, используя любимый язык и либы.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.