Python 生成用于输入RSS提要的变量

Python 生成用于输入RSS提要的变量,python,debugging,variables,loops,python-2.7,Python,Debugging,Variables,Loops,Python 2.7,这可能是一个非常简单的调试问题(我没有单独编写代码)我有一个循环代码,可以解析一个刮取的xml,这种解析在5分钟的循环中进行,但不会从一个循环返回到下一个循环,这是将用户ID存储在一个集合中的结果,如果用户id已经存在于用户集中,那么脚本将跳到xml的下一行。我想将这个脚本的结果作为RSS输出,我有一个潜在的方法来实现,但是我首先需要将数据存储为某种类型的变量 我曾经尝试过这样做,但是每次这样做时,我似乎都会遇到存储在集合中的最后一个用户ID的问题。我没有向您提供我的错误代码,而是附上了一个工作

这可能是一个非常简单的调试问题(我没有单独编写代码)我有一个循环代码,可以解析一个刮取的xml,这种解析在5分钟的循环中进行,但不会从一个循环返回到下一个循环,这是将用户ID存储在一个集合中的结果,如果用户id已经存在于用户集中,那么脚本将跳到xml的下一行。我想将这个脚本的结果作为RSS输出,我有一个潜在的方法来实现,但是我首先需要将数据存储为某种类型的变量

我曾经尝试过这样做,但是每次这样做时,我似乎都会遇到存储在集合中的最后一个用户ID的问题。我没有向您提供我的错误代码,而是附上了一个工作代码的示例,其中不包括我将结果打印定义为变量的哈希尝试

import mechanize
import urllib
import json
import re
import random
import datetime
from sched import scheduler
from time import time, sleep

######Code to loop the script and set up scheduling time

s = 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 desired
def 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('>&nbsp;&nbsp;(.*)<')
    pattern2 = re.compile('/control/profile/view/(.*)\' title=')
    pattern3 = re.compile('<span style=\'font-size:12px;\'>(.*)<\/span>')

##### Making the code identify each row, removing the need to numerically quantify the     number of rows in the xmlfile,
##### thus making number of rows dynamic (change as the list grows, required for looping function to work un interupted)

    for row in xmlload1['rows']:
        cell = row["cell"]

##### defining the Keys (key is the area from which data is pulled in the XML) for use in the pattern finding/regex

        user_delimiter = cell['username']
        selection_delimiter = cell['race_horse']

        if strikeratecalc2 < 12 : continue;

##### REMAINDER OF THE REGEX DELMITATIONS

        username_delimiter_results = re.findall(pattern1, user_delimiter)[0]
        userid_delimiter_results = (re.findall(pattern2, user_delimiter)[0])
        user_selection = re.findall(pattern3, selection_delimiter)[0]

##### Code to stop duplicate posts of each user throughout the day

    userset = set ([])
    if userid_delimiter_results in userset: continue;

##### Printing the results of the code at hand

        print "user id = ",userid_delimiter_results
        print "username = ",username_delimiter_results
        print "user selection = ",user_selection
        print ""

##### Code to stop duplicate posts of each user throughout the day  part 2 (udating set to add users already printed to the ignore list)

    userset.update(userid_delimiter_results)

    getData()

    run_periodically(time()+5, time()+1000000, 300, getData)
导入机械化
导入URL库
导入json
进口稀土
随机输入
导入日期时间
从sched导入计划程序
从时间导入时间,睡眠
######循环脚本并设置调度时间的代码
s=调度程序(时间、睡眠)
random.seed()
def定期运行(开始、结束、间隔、功能):
事件时间=开始
当事件时间<结束时:
s、 enterabs(事件时间,0,函数,())
事件时间+=间隔+随机随机范围(-5,45)
s、 运行()
######从所需URL获取所需数据的代码
def getData():
post_url=“感兴趣的url”
browser=mechanize.browser()
browser.set_handle_robots(False)
browser.addheaders=[('User-agent','Firefox')]
######这些是通过上述工具检查得到的参数
参数={'page':'1',
‘rp’:‘250’,
“sortname”:“roi”,
“排序器”:“描述”
}
#####对参数进行编码
data=urllib.urlencode(参数)
trans_array=browser.open(post_url,data).read().decode('UTF-8'))
xmload1=json.loads(trans_数组)

pattern1=re.compile('>(.*)我通过将print部分设置为

    arrayna = [arrayna1, arrayna2, arrayna3, arrayna4]

    arraym1 = "user id = ",userid_delimiter_results
然后为了克服每次运行循环时arrayna都会遇到的问题

my_array = [] # Create an empty list

print(my_array)
因此,您的代码可能类似于:


这起到了作用:)

存在许多问题,例如,代码总是尝试对空集(userset)进行测试,测试本身可能也不正确(或者稍后对userset.update()的调用不正确),由于无限递归(getData())而无法访问run\u定期调用。将您的代码分割成小块,并使用模拟数据对其进行单独测试,直到您了解每个peace到底在做什么。考虑使用爬行、擦除数据和生成提要或从HTML中提取数据。