ARC-MX / sgcc_electricity_new

HomeAssistant 国家电网电费查询
Apache License 2.0
94 stars 11 forks source link

获取30天用电量的时候报错 #11

Open EricCorleone opened 3 weeks ago

EricCorleone commented 3 weeks ago

麻烦大佬看一下哈:

root@docker:~/sgcc_electricity_new# docker logs -f sgcc_electricity 
2024-06-11 00:47:45  [INFO    ] ---- 程序开始,当前仓库版本为1.3.3,仓库地址为https://github.com/ARC-MX/sgcc_electricity_new.git
2024-06-11 00:47:45  [INFO    ] ---- chromium-driver version is 120
2024-06-11 00:47:45  [INFO    ] ---- MongoDB connection test successful
2024-06-11 00:47:45  [INFO    ] ---- 当前登录的用户名为: {{手机号}},homeassistant地址为http://192.168.2.3:8123/,程序将在每天00:00执行
2024-06-11 00:47:45  [INFO    ] ---- 此次为首次运行,等待时间(FIRST_SLEEP_TIME)为10秒,可在.env中设置
2024-06-11 00:47:55  [INFO    ] ---- patching driver executable /usr/bin/chromedriver
2024-06-11 00:48:06  [INFO    ] ---- Webdriver initialized.
2024-06-11 00:48:07  [INFO    ] ---- Open LOGIN_URL:https://www.95598.cn/osgweb/login
2024-06-11 00:48:17  [INFO    ] ---- find_element 'user'.
2024-06-11 00:48:28  [INFO    ] ---- input_elements username : {{手机号}}
2024-06-11 00:48:28  [INFO    ] ---- input_elements password : {{密码}}
2024-06-11 00:48:28  [INFO    ] ---- Click the Agree option.
2024-06-11 00:48:58  [INFO    ] ---- Click login button.
2024-06-11 00:48:58  [INFO    ] ---- Get electricity canvas image successfully.
2024-06-11 00:48:58  [INFO    ] ---- Image CaptCHA distance is 275.
2024-06-11 00:49:09  [INFO    ] ---- Login successfully on https://www.95598.cn/osgweb/login
2024-06-11 00:49:29  [INFO    ] ---- 将获取1户数据,user_id: ['{{户号}}']
2024-06-11 00:49:51  [INFO    ] ---- Get electricity charge balance for {{户号}} successfully, balance is 216.04 CNY.
2024-06-11 00:50:13  [INFO    ] ---- Get year power usage for {{户号}} successfully, usage is 2167 kwh
2024-06-11 00:50:13  [INFO    ] ---- Get year power charge for {{户号}} successfully, yealrly charge is 1159.9 CNY
2024-06-11 00:50:23  [INFO    ] ---- Get month power charge for {{户号}} successfully, 2024-01-01-2024-01-31 usage is 457 KWh, charge is 248.32 CNY.
2024-06-11 00:50:23  [INFO    ] ---- Get month power charge for {{户号}} successfully, 2024-02-01-2024-02-29 usage is 375 KWh, charge is 194.11 CNY.
2024-06-11 00:50:23  [INFO    ] ---- Get month power charge for {{户号}} successfully, 2024-03-01-2024-03-31 usage is 469 KWh, charge is 257.9 CNY.
2024-06-11 00:50:23  [INFO    ] ---- Get month power charge for {{户号}} successfully, 2024-04-01-2024-04-30 usage is 451 KWh, charge is 243.53 CNY.
2024-06-11 00:50:23  [INFO    ] ---- Get month power charge for {{户号}} successfully, 2024-05-01-2024-05-31 usage is 415 KWh, charge is 216.04 CNY.
2024-06-11 00:51:34  [ERROR   ] ---- Webdriver quit abnormly, reason: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='pane-second']/div[1]/div/label[2]/span[1]"}
  (Session info: chrome=120.0.6099.224)
Stacktrace:
#0 0x5dd4fb711233 <unknown>
#1 0x5dd4fb3db0fe <unknown>
#2 0x5dd4fb424ba6 <unknown>
#3 0x5dd4fb424cc1 <unknown>
#4 0x5dd4fb472204 <unknown>
#5 0x5dd4fb45244d <unknown>
#6 0x5dd4fb46f680 <unknown>
#7 0x5dd4fb4521a3 <unknown>
#8 0x5dd4fb41713e <unknown>
#9 0x5dd4fb418712 <unknown>
#10 0x5dd4fb6e6534 <unknown>
#11 0x5dd4fb6e9759 <unknown>
#12 0x5dd4fb6e9238 <unknown>
#13 0x5dd4fb6e9c05 <unknown>
#14 0x5dd4fb6d8abf <unknown>
#15 0x5dd4fb6e9f8e <unknown>
#16 0x5dd4fb6c2c86 <unknown>
#17 0x5dd4fb7023e5 <unknown>
#18 0x5dd4fb7025cb <unknown>
#19 0x5dd4fb7107bf <unknown>
#20 0x72030cb31ea7 start_thread
. 5 retry times left.
2024-06-11 00:51:34  [ERROR   ] ---- state-refresh task failed, reason is cannot unpack non-iterable NoneType object
Traceback (most recent call last):
  File "/app/data_fetcher.py", line 254, in fetch
    return self._fetch()
  File "/app/data_fetcher.py", line 287, in _fetch
    last_daily_date_list, last_daily_usage_list, yearly_charge_list, yearly_usage_list, month_list, month_usage_list, month_charge_list  = self._get_other_data(driver, user_id_list)
  File "/app/data_fetcher.py", line 438, in _get_other_data
    self.save_30_days_usage(driver, user_id_list[i - 1])
  File "/app/data_fetcher.py", line 561, in save_30_days_usage
    self._click_button(driver, By.XPATH, "//*[@id='pane-second']/div[1]/div/label[2]/span[1]")
  File "/app/data_fetcher.py", line 590, in _click_button
    click_element = driver.find_element(button_search_type, button_search_key)
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 856, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 429, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='pane-second']/div[1]/div/label[2]/span[1]"}
  (Session info: chrome=120.0.6099.224)
Stacktrace:
#0 0x5dd4fb711233 <unknown>
#1 0x5dd4fb3db0fe <unknown>
#2 0x5dd4fb424ba6 <unknown>
#3 0x5dd4fb424cc1 <unknown>
#4 0x5dd4fb472204 <unknown>
#5 0x5dd4fb45244d <unknown>
#6 0x5dd4fb46f680 <unknown>
#7 0x5dd4fb4521a3 <unknown>
#8 0x5dd4fb41713e <unknown>
#9 0x5dd4fb418712 <unknown>
#10 0x5dd4fb6e6534 <unknown>
#11 0x5dd4fb6e9759 <unknown>
#12 0x5dd4fb6e9238 <unknown>
#13 0x5dd4fb6e9c05 <unknown>
#14 0x5dd4fb6d8abf <unknown>
#15 0x5dd4fb6e9f8e <unknown>
#16 0x5dd4fb6c2c86 <unknown>
#17 0x5dd4fb7023e5 <unknown>
#18 0x5dd4fb7025cb <unknown>
#19 0x5dd4fb7107bf <unknown>
#20 0x72030cb31ea7 start_thread

Traceback (most recent call last):
  File "/app/main.py", line 57, in run_task
    user_id_list, balance_list, last_daily_date_list, last_daily_usage_list, yearly_charge_list, yearly_usage_list, month_list, month_usage_list, month_charge_list = data_fetcher.fetch()
TypeError: cannot unpack non-iterable NoneType object
EricCorleone commented 3 weeks ago

破案了,要签约智能交费才能看到30天的数据,不然就只能看到7天的(话说这个是否能优化?感觉很多人都没开通这个智能交费)

ARC-MX commented 2 weeks ago

其实我不太清楚30天电费有啥用,所以我就没在这上面花很多心思