簡體   English   中英

通過 for 循環時,如果變量為真,則打印兩次,為假時僅打印一次

[英]When going through a for loop, if the variable is true it prints twice when it false it only prints once

我正在檢查網站上的意見,當通過它時,如果它們都匹配,文本將打印兩次,當它不匹配時,它只會打印一次,我一直試圖弄清楚如何簡單地打印真正的匹配並且只打印一次。

CMD 輸出如下所示: http : //prntscr.com/h3ioli

import cfscrape, re, os, time
from bs4 import BeautifulSoup



cc = open('cookie.txt').read()
mybbuser, sid = cc.split(':')
MainScrapper = cfscrape.create_scraper()


def substring_after(string, delim,back):
    return string.partition(delim)[back]


suspect = raw_input('User ID: ')

def reputationCheck(userid):
    reputationlist = []
    r = MainScrapper.get('https://v3rmillion.net/reputation.php?uid={}&show=positive'.format(userid), cookies={'mybbuser': mybbuser,'sid': sid})
    soup = BeautifulSoup(r.text, 'html.parser')
    reputations = soup.find_all('a', href=re.compile("member\.php\?action=profile\&uid=(\d+)"))
    for reputation in reputations:
        reputationlist = reputationlist + [substring_after(reputation['href'],'uid=', 2)]
    if soup.find('span', {'class' : 'pages'}):
        pages = soup.find('span', {'class' : 'pages'}).text
        pages = substring_after(pages, '(', 2)
        pages = substring_after(pages, '):', 0)
        soup = BeautifulSoup(r.text, 'html.parser')

        for x in range(1, (int(pages))):
            r = MainScrapper.get('https://v3rmillion.net/reputation.php?uid={}'.format(userid) + '&show=positive&page={}'.format(x + 1), cookies={'mybbuser': mybbuser,'sid': sid})
            soup = BeautifulSoup(r.text, 'html.parser')
            reputations = soup.find_all('a', href=re.compile("member\.php\?action=profile\&uid=(\d+)"))
            for reputation in reputations:
                if not reputation == suspect:
                    reputationlist = reputationlist + [substring_after(reputation['href'],'uid=', 2)]

    for userids in reputationlist:
        if not str(userids) == str(suspect):
            victim = []
            r = MainScrapper.get('https://v3rmillion.net/reputation.php?uid={}'.format(userids) + '&show=positive', cookies={'mybbuser': mybbuser,'sid': sid})
            soup = BeautifulSoup(r.text, 'html.parser')
            reputations = soup.find_all('a', href=re.compile("member\.php\?action=profile\&uid=(\d+)"))
            for reputation in reputations:
                if substring_after(reputation['href'],'uid=', 2) == str(suspect):
                    print(str(userids) + 'exchanged reputation with ' + str(suspect))
                else:
                    pass
if not reputation == suspect:
if not str(userids) == str(suspect):

這些應該是:

if reputation != suspect:
if str(userids) != str(suspect):

也許,您應該將打印功能放在循環之外。 就像是:

a=['x','y','z']
c=''
for b in a:
    c+=b
    print('this is inside loop, create multiple print: '+c)
print('this is outside loop, create single print, get it: '+c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM