我想开始记录我有多少个状态为 200 的成功请求,当我完成页面的网页抓取后,我使用以下部分
import requests
import csv
import selenium
from selenium import webdriver
import time
from time import sleep
import datetime
mycount = 0
class Parser(object):
ses = requests.Session()
# parse a single item to get information
def parse(self, urls):
url = urls[1]
try:
r = self.ses.get(url)
time.sleep(3)
if r.status_code == 200:
mycount=mycount+1
后来当我有mycount将其传递给列表和csv时
if __name__ == "__main__":
with Pool(4) as p:
print('Just before parsing..Page')
records = p.map(parser.parse, web_links)
with open(my_log_path,'a',encoding='utf-8',newline='') as logf:
writer = csv.writer(logf,delimiter=';')
writer.writerow(logs)
但是我知道我的局部变量在赋值之前被引用为什么 mycount 如果它位于函数顶部和外部,则被视为局部变量?我该如何解决这个问题?谢谢
您的类无法访问 mycount,因为它是一个全局变量。在修改类之前,您应该在类中使用global
:
def parse(self, urls):
global mycount
url = urls[1]