Показать сообщение отдельно

  #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()
 
Ответить с цитированием