Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2020 01:17:35

sasholy
Зарегистрирован: 2018-08-21
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

Ошибка - AttributeError: ‘str’ object has no attribute ‘xpath’

 from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https:.....').text
r = response.xpath('//*[@id="blgtble"]/tbody')

Что нужно прописать, чтобы response работало с xpath ?

спс!

Отредактировано sasholy (Авг. 13, 2020 01:19:22)

Офлайн

#2 Авг. 13, 2020 02:50:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

https://requests-html.kennethreitz.org/

XPath is also supported (learn more):
  
>>> r.html.xpath('a')
[<Element 'a' class='btn' href='https://help.github.com/articles/supported-browsers'>]
  
r = session.get(url)
r.html.xpath('a')



Отредактировано py.user.next (Авг. 13, 2020 02:50:51)

Офлайн

#3 Авг. 13, 2020 14:03:27

sasholy
Зарегистрирован: 2018-08-21
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

я не пойму, что нужно сделать со строкой

 r = response.html.xpath('//*[@id="blgtble"]/tbody')

если имели ввиду html, то все равно

AttributeError: ‘str’ object has no attribute ‘html’

Отредактировано sasholy (Авг. 13, 2020 14:04:10)

Офлайн

#4 Авг. 13, 2020 14:29:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

sasholy
Каждый объект имеет свой тип.
У объекта согласно его питу есть набор свойств и методов.
С чего вы взяли, что объект response имеет свойство html?
Вам интерпретатор вполне очевидно сообщает, что объект типа str свойства html не имеет.

Более того, вы делаете

 response = session.get('https:.....').text
как бы не надо быть Нострадамусом, чтобы догадаться, что .text - это текст, то есть строка. Нет у строки никаких .html



Отредактировано FishHook (Авг. 13, 2020 14:29:48)

Офлайн

#5 Авг. 13, 2020 14:59:04

sasholy
Зарегистрирован: 2018-08-21
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

так он и xpath не имеет, а вот такой кусок нашел и долблюсь

 while True:
        try:
            random_proxy = random.choice(proxies)
            random_proxy = {'http': random_proxy, 'https': random_proxy}
            resp = session.get(url, proxies=random_proxy, timeout=2)
            if resp.status_code == 200:
                break
        except Exception as e:
            print(type(e), e)
    # rand_sleep = random.randint(10, 30)
    # sleep(rand_sleep)
    print(url, resp.status_code)
    links = resp.html.xpath("//div[@class='r']/a/@href")
    domains = [x.split('/')[2].replace('www.', '') for x in links if 'http' in x]
    print("Keyword - ", key)

links = resp.html.xpath("//div/a/@href")

Офлайн

#6 Авг. 13, 2020 17:00:09

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

sasholy
а вот такой кусок нашел и долблюсь
Так можно и голову раздолбить

 links = resp.html.xpath("//div[@class='r']/a/@href")

 response = session.get('https:.....').text
Вот с чего вы взяли, что это одно и то же?

Покажите, что такое resp, где эта переменная определяется в коде



Отредактировано FishHook (Авг. 13, 2020 17:00:45)

Офлайн

#7 Авг. 14, 2020 00:05:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

sasholy
если имели ввиду html, то все равно
AttributeError: ‘str’ object has no attribute ‘html’
Потому что ты не убрал .text в конце.

Вот твой пример
  
from requests_html import HTMLSession
 
session = HTMLSession()
response = session.get('https:.....')
r = response.xpath('//*[@id="blgtble"]/tbody')



Отредактировано py.user.next (Авг. 14, 2020 00:12:24)

Офлайн

#8 Авг. 14, 2020 00:17:08

sasholy
Зарегистрирован: 2018-08-21
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

 from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://free-proxy-list.net/')
r = response.xpath('//*[@id="proxylisttable"]/tbody')
for i in r:
    if i.xpath('//*[@id="proxylisttable"]/tbody/tr[*]/td[7]').text == 'yes':
        ip = i.xpath('//*[@id="proxylisttable"]/tbody/tr[*]/td[1]').text
        port = i.xpath('//*[@id="proxylisttable"]/tbody/tr[*]/td[2]').text
    print(ip, port, )

вот пытаюсь собрат в кучу, пытаюсь чужой код переделать на xpath

Отредактировано sasholy (Авг. 14, 2020 00:18:39)

Офлайн

#9 Авг. 15, 2020 00:14:17

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1395
Репутация: +  124  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

sasholy
вот пытаюсь собрат в кучу, пытаюсь чужой код переделать на xpath

Учусь,интересно стало попробовать
 from requests_html import HTMLSession
session = HTMLSession()
response = session.get('https://free-proxy-list.net/')
r = response.html
n = 0
for txt in r.xpath('//*[@id="proxylisttable"]/tbody/tr/td[7]/text()'):
	n+=1
	if txt == "yes":
		data = r.xpath(f'//*[@id="proxylisttable"]/tbody/tr[{n}]/td[1]/text() | //*[@id="proxylisttable"]/tbody/tr[{n}]/td[2]/text()')
		ip = data[0]
		port = data[1]
		print(f'{ip}:{port}')

Выводит что-то типа:
 158.101.198.195:3128
37.152.181.36:8118
1.20.103.196:42792
118.174.220.14:43473
117.252.12.26:55443
191.242.182.132:8081
79.137.254.51:60779
103.208.200.114:23500
191.100.24.251:21776
91.211.107.204:41258
203.207.52.206:8085
Process finished with exit code 0

Офлайн

#10 Авг. 15, 2020 10:47:22

sasholy
Зарегистрирован: 2018-08-21
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

AttributeError: 'str' object has no attribute 'xpath'

xam1816
спс, есть мануалы, чем руководствовался?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version