Найти - Пользователи
Полная версия: Проблема с while
Начало » Python для новичков » Проблема с while
1
backdoor
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
#__author__ = 'ilya khramtsov'
import re
from requests import get
###
while_search = re.compile(r'var betNumber=([0-9]+)')
########
guessLow = re.compile(r'var guessLow=([0-9]+)')
guessHigh = re.compile(r'var guessHigh=([0-9]+)')
betNumber = re.compile(r'var betNumber=([0-9]+)')
betResult = re.compile(r'var betResult=\[([0-9]+)')
payIn = re.compile(r'payIn=\[\-([0-9]+)')
payOut = re.compile(r'payIn=\[\-([0-9]+)')
########
f = open('list', 'r')
i = 23215483089
http_proxy = (f.readlines())
for line in http_proxy:
    proxies = ({'http': 'http://'+str(line).replace('\n', '')})
    while i <= 23215483092:
        f_result = open('result.txt', 'a')
        ff = get('https://www.999dice.com/Bets/?b='+str(i), proxies=proxies)
        findall2 = re.findall(while_search, str(ff.text))
        result0 = re.findall(betNumber, str(ff.text))
        result1 = re.findall(betResult, str(ff.text))
        result2 = re.findall(guessLow, str(ff.text))
        result3 = re.findall(guessHigh, str(ff.text))
        result4 = re.findall(payIn, str(ff.text))
        result5 = re.findall(payOut, str(ff.text))
        f_result.write(str(result0)+':'+str(result1)+':'+str(result2)+':'+str(result3)+':'+str(result4)+':'+str(result5)+'\n')
        i += 1

Вывод результата такой.
['0']:['545597']:['9500']:['959499']:['1000000']:['1000000']
[]:[]:[]:[]:[]:[]
[]:[]:[]:[]:[]:[]


То есть он отработал 1 раз,а потом нечего не обрабатывает. Если это же запускать в режиме отладки в pycharm то все нормально работает.
terabayt
1)
payIn = re.compile(r'payIn=\[\-([0-9]+)')
payOut = re.compile(r'payIn=\[\-([0-9]+)')
регулярки одинаковы
2)
from requests import get
ff = get('https://www.999dice.com/Bets/?b='+str(i), proxies=proxies)
ох как потом можно потеряться с этим get…
так намного лучше
import requests
requests.get(...)
3)
f = open('list', 'r')
используйте или with или нужно закрывать файл
4)
proxies = ({'http': 'http://'+str(line).replace('\n', '')})
readlines разбивает по знаку переноса, поэтому его там никак не может быть
а в подобных случаях лучше использовать strip
5)
f_result = open('result.txt', 'a')
зачем же пытатся открывать при каждом шаге файл на дописывания??
6) используйте форматирование строк
7)
http_proxy = (f.readlines())
скобки не нужны
backdoor
То есть он отработал 1 раз,а потом нечего не обрабатывает.
проблема не с while! в выводе то три строки, как и должно быть, а вот то что в строках ничего нету нужно смотреть. скорее всего findall ничего не возвращает. смотрите в цикле ff.text и все станет понятно, что нету того что вы хотите найти
ну или же покажите нам
...
for line in http_proxy:
    proxies = ({'http': 'http://'+str(line).replace('\n', '')})
    while i <= 23215483092:
        f_result = open('result.txt', 'a')
        ff = get('https://www.999dice.com/Bets/?b='+str(i), proxies=proxies)
        print(ff.text)
        findall2 = re.findall(while_search, str(ff.text))
        result0 = re.findall(betNumber, str(ff.text))
        result1 = re.findall(betResult, str(ff.text))
        result2 = re.findall(guessLow, str(ff.text))
        result3 = re.findall(guessHigh, str(ff.text))
        result4 = re.findall(payIn, str(ff.text))
        result5 = re.findall(payOut, str(ff.text))
        f_result.write(str(result0)+':'+str(result1)+':'+str(result2)+':'+str(result3)+':'+str(result4)+':'+str(result5)+'\n')
        i += 1
py.user.next
terabayt
1)
2)
3)
4)
5)
6)
7)
Тут, походу, проще весь этот быдлокод стереть и написать всё заново, чем по пунктам разжёвывать каждую шпуньку.
Один вывод в файл в виде списков приведённых к str() чего только стоит.

backdoor
while i <= 23215483092:
Ахахах, это while True что ли? :)
backdoor
terabayt
1)
Нашел в отладке ошибку после первого прохода,
{("unclosed <ssl.SSLSocket fd=8, family=AddressFamily.AF_INET, type=SocketType.SOCK_STREAM, proto=6, laddr=('192.168.0.227', 54810), raddr=('46.28.204.10', 443)>", <class 'ResourceWarning'>, 25): True}
ayb
Я даже не представляю что-это такое, но там есть API. Если несколько раз обновлять страницу - то приходит ответ “Вы слишком часто запрашиваете обновление страниц. Подождите несколько минут и повторите попытку.”
backdoor
ayb
Я даже не представляю что-это такое, но там есть API. Если несколько раз обновлять страницу - то приходит ответ “Вы слишком часто запрашиваете обновление страниц. Подождите несколько минут и повторите попытку.”
по этому и прокси)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB