Используйте строку unicode для выражения XPath
hxs.select(u"id('unitControl')/div[2]/table/tbody/tr[td//text()[contains(.,'Antal Badeværelser')]]/td[2]/text()").extract()
или
hxs.select(u"id('unitControl')/div[2]/table/tbody/tr[td//text()[contains(.,'Antal Badev\u00e6relser')]]/td[2]/text()").extract()
Ваши предположения могут быть правильными, я имею в виду, что ваша проблема может действительно иметь отношение к тому, как api-сервер запускается в EKS, и когда отсутствует опция - client-ca-file , согласно исходный код apiserver:
Кластер не предоставляет клиентский ca-файл в configmap /% s в% s, поэтому аутентификация клиентского сертификата на api-сервере расширения не будет работать.
blockquote>Мне интересно, не могли бы вы создать клиент-CA самостоятельно и впоследствии обновить ConfigMap с расширением-apiserver-аутентификацией. В конце концов, в EKS у нас есть доступ к CA (способ получить его здесь ), который может послужить нам для подписи клиентских сертификатов, как описано на странице GitHub с примером api-сервера .
В качестве дополнительного комментария:
Я заметил, что на EKS такие компоненты, как kubelet, используют
aws-iam-authenticator
(содержимое/var/lib/kubelet/kubeconfig
на узле кластера):apiVersion: v1 kind: Config users: - name: kubelet user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 args: - token - -i - eks-api-eval command: /usr/bin/aws-iam-authenticator env: null
в противоположность GKE, где client-ca используется как способ аутентификации клиентов:
apiVersion: v1 kind: Config users: - name: kubelet user: client-certificate: /etc/srv/kubernetes/pki/kubelet.crt client-key: /etc/srv/kubernetes/pki/kubelet.key