Почему моя попытка очистить значение текстового элемента возвращает ноль? - PullRequest
0 голосов
/ 14 января 2019

Я очищаю веб-сайт с помощью кнопки «загрузить еще». Мне нужно извлечь подчеркнутое число желтым цветом, но я получаю 0.

enter image description here

Вот веб-сайт . Как я могу извлечь необходимую информацию?

Вот мой код:

import requests
from parsel import Selector
from scrapy.selector import Selector 
from scrapy.http import HtmlResponse
nexturl = 'https://www.tayara.tn/sc/immobilier/appartements'
response = requests.get(nexturl)
sel = Selector(response)
nbPages = sel.xpath('//div[@class="_1Nm7X TkLPj"]/text()').extract() 
print(nbPages)

1 Ответ

0 голосов
/ 14 января 2019

Если вы хотите получить общее количество «анонсов», вам нужно смоделировать XHR. Для меня это работает, как показано ниже, но вы можете попробовать изменить его (удалить ненужные заголовки, prettify data и т. Д.):

import requests

headers = {
    'Origin': 'https://www.tayara.tn',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en-US,en;q=0.9',
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Referer': 'https://www.tayara.tn/sc/immobilier/appartements',
    'Connection': 'keep-alive',
}

data = '{"query":"query ListingsPage($page: Page, $filter: SearchFilter, $sortBy: SortOrder) {\\n  listings: searchAds(page: $page, filter: $filter, sortBy: $sortBy) {\\n    items {\\n      uuid\\n      title\\n      price\\n      currency\\n      thumbnail\\n      createdAt\\n      state\\n      category {\\n        id\\n        name\\n        engName\\n        __typename\\n      }\\n      user {\\n        uuid\\n        displayName\\n        avatar(width: 96, height: 96) {\\n          url\\n          __typename\\n        }\\n        __typename\\n      }\\n      __typename\\n    }\\n    trackingInfo {\\n      transactionId\\n      listName\\n      recommenderId\\n      experimentId\\n      variantId\\n      __typename\\n    }\\n    totalCount\\n    pageInfo {\\n      startCursor\\n      hasPreviousPage\\n      endCursor\\n      hasNextPage\\n      __typename\\n      }\\n    __typename\\n  }\\n}\\n","variables":{"page":{"count":36},"filter":{"queryString":null,"category":"2","regionId":null,"attributeFilters":[]},"sortBy":"CREATED_DESC"},"operationName":"ListingsPage"}'

response = requests.post('https://www.tayara.tn/graphql', headers=headers, data=data)

print(response.json()['data']['listings']['totalCount'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...