我试图使用一组,以防止在以下代码中重新打印用户。我设法让python接受他的代码而没有产生任何错误,但是如果我让代码在10秒的循环中运行,它将继续打印应该已经登录的用户。这是我第一次尝试使用集合,并且我是python的新手(到目前为止,我都是根据我所看到的示例进行构建并将其反向工程的。)以下是我正在使用的代码示例import mechanizeimport urllibimport jsonimport reimport randomimport datetimefrom sched import schedulerfrom time import time, sleep######Code to loop the script and set up scheduling times = scheduler(time, sleep)random.seed()def run_periodically(start, end, interval, func): event_time = start while event_time < end: s.enterabs(event_time, 0, func, ()) event_time += interval + random.randrange(-5, 45) s.run()###### Code to get the data required from the URL desireddef getData(): post_url = "URL OF INTEREST" browser = mechanize.Browser() browser.set_handle_robots(False) browser.addheaders = [('User-agent', 'Firefox')]######These are the parameters you've got from checking with the aforementioned tools parameters = {'page' : '1', 'rp' : '250', 'sortname' : 'roi', 'sortorder' : 'desc' }#####Encode the parameters data = urllib.urlencode(parameters) trans_array = browser.open(post_url,data).read().decode('UTF-8') xmlload1 = json.loads(trans_array) pattern1 = re.compile('> (.*)<') pattern2 = re.compile('/control/profile/view/(.*)\' title=') pattern3 = re.compile('<span style=\'font-size:12px;\'>(.*)<\/span>')
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
这个:
userset.update(userid_delimiter_results)
可能应该是这样的:
userset.add(userid_delimiter_results)
为了证明这一点,请尝试userset
在每次调用后打印的内容。
慕雪6442864
TA贡献1812条经验 获得超5个赞
对于其他人的利益,可能过这个岗位绊倒,我的代码没有工作的原因是,首先使用.update的,印刷.update移动之后,我定义userset
了前for
环.update将打印u'1', u'0', u'3', u'5'
此进展到'1', u'0', u'3', u'2', u'5', u'7'
这竟然是构成我正在测试的3个用户ID的所有单个数字。.add
根据需要添加了用户ID。但是,这里的关键是将用户集定义移出for循环,否则每次都会创建一个新集,并且从不匹配任何内容。
添加回答
举报
0/150
提交
取消