Просмотр полной версии : Софт для отправки пост запросов
Martyn911
19.06.2013, 13:51
Здравствуйте уважаемые форумчане, понадобилось отправить пост запрос на несколько тысяч сайтов и сохранить в файл те, ответ которых удовлетворяет требованиям.
Подробнее что надо:
1. Отправить пост запрос на скрипт http://site.ru/test.php
2. Получить html страницы
3. найти в коде заданный текст
4. если текст нашли сохранить ссылку в файл
Есть ли софт выполняющий что-то подобное или может скрипт, посоветуйте пожалуйста или поделитесь, заранее благодарен за отзывчивость
OverLocker
18.07.2013, 18:03
Вот наверстал на коленке, быдлокод малость из-за глобалов
Ссылка (http://wap4file.org/views/189)
Необходим питон 2.7
Файлы:
log.txt - сюда заносятся подходящие урлы
needText.txt - Сюда пишешь текст который надо искать в страницах
post.txt - пост запрос потипу var=value&var2=value2
urls.txt - Удрес к странице, с новой строки
Доп настройки в poster.py его же и запускать через python poster.py
poster.py
Code:
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()
Обычно в таких случаях пишут софт под конкретную задачу, используя любимый язык и либы.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot