gpt4 book ai didi

python - HTMLParser 的缓冲问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:13 26 4
gpt4 key购买 nike

我正在开发一个网络机器人,它会轮询我的大学的类(class)列表,到目前为止,我已经完成了很多工作。但我在使用 HTML 解析器时遇到了问题。事情是这样的,当我单独获取每个专业的类(class)列表时,返回的类(class)数组是正确的。但是当我在 for 循环中执行此操作时,例如

for major in allMajors:
dictionary[major] = GetAllCourses(major)

问题是词典积累了类(class)。例如if allMajors == ['MajorA', 'MajorB'] ,那么MajorB将包含MajorA和MajorB的类(class)。这是我的代码。

def UIUCGetCourses(major, s):
url = "https://ui2web1.apps.uillinois.edu/BANPROD1/bwskfcls.P_GetCrse"
payload = {u'sel_instr': [u'dummy'], u'sel_camp': [u'dummy', u'dummy'],
...
}

r = s.post(url=url, data=payload)

p = UIUCcoursesParser()
p.feed(r.content)
p.close()

return p.courses, s

class UIUCcoursesParser(HTMLParser):
print_data = False
courses = []
descriptions = []
internal_string = ""

def handle_starttag(self, tag, attr):
if tag == 'td':
for a in attr:
if a[0] == 'class' and a[1] == 'dddefault':
self.print_data = True

if self.internal_string:
self.descriptions.append(self.internal_string)
self.internal_string = ""

def handle_data(self, data):
if self.print_data and data.isdigit():
self.courses.append(data)
self.print_data = False
elif self.print_data:
self.internal_string = self.internal_string + data.strip('\n')

最佳答案

问题已解决。我是一个白痴!问题出在这里:

class UIUCcoursesParser(HTMLParser):
print_data = False
courses = []
descriptions = []
internal_string = ""

这些变量是类变量而不是实例变量。 http://legacy.python.org/doc/essays/ppt/acm-ws/sld051.htm

关于python - HTMLParser 的缓冲问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com