Неисправность XPATH / проблема с кодом l xml - PullRequest
0 голосов
/ 02 апреля 2020

Я уверен, что это, вероятно, что-то действительно простое ...

Я пытаюсь воспроизвести текущую песню и текущий 'dj' с моего сервера plug.dj, используя l xml и запросить , Сейчас я сосредоточен на попытке получить текст для текущего dj, вот соответствующий код:


import discord
import os
import asyncio
import csv
import requests
import lxml.html
from keep_alive import keep_alive

#Base GLOBAL variable pool, GLOBAL variables initialized here.
BOT_PREFIX = ".river"
client = discord.Client()

#On Initialization
@client.event
async def on_ready():
  print("River bot initialized.")

#Status Changer Event
async def status_changer():
  await client.wait_until_ready()
  while not client.is_closed():
    filE = csv.reader(open("properties.csv"))
    filE_lines = list(filE)
    MusicURL1 = filE_lines[1][1]
    if MusicURL1 != "":
      html = requests.get("https://plug.dj/4204681060305555241")
      doc = lxml.html.fromstring(html.content)
      current_dj = doc.xpath('/html/body/div[1]/div[2]/div[1]/div[5]/div[2]/div[2]/div[1]/p[2]/span')
      current_song = doc.xpath('//p[@class="community__song-playing"]/text()')
      if current_dj == "Nobody is playing":
        await client.change_presence(activity=discord.Game(name="type .help"))
      else:
        await client.change_presence(activity=discord.Activity(type=discord.ActivityType.listening, name=current_song))
        print(current_dj)
        print(current_song)
    await asyncio.sleep(30) #runs every 30 sec

Желаемый результат заключается в том, что current_dj и current_song печатают соответствующие текстовые значения, поэтому прямо сейчас для current_dj это должно быть: ['Nobody is playing'] К сожалению, все, что печатает, это пустые скобки: [] Мне было интересно, может ли кто-нибудь помочь мне понять, что я делаю неправильно? Любая помощь очень ценится. Спасибо!

...