1

Тема: Не працює парсер

Намагаюсь реалізувати парсинг номера з olx.ua. Коротко, при натисканні "показати номер" виконується ajax запит (перший додаток) який в query string надсилає phoneToken. Токен вшито в код сторінки, генерується сервером і присилається щоразу новий. Написав парсер, що отримує токен та надсилає запит по ньому, але відповідає лише {"value":"000 000 000"}.

#just random olx page
req = requests.request('GET', 'https://www.olx.ua/obyavlenie/stroitelnye-raboty-IDo1d9s.html', data=hdr1)
print("ok")
ff = open("data.html", "w+", encoding="utf-8")
webpage = req.text
ff.write(webpage)
ff.close()
#extracting token
f1 = open("data.html", "r+", encoding='UTF-8')
rr = re.compile(r'phoneToken = \'(.+)\'')
s = ''
for line in f1:
    a = re.search(rr, line)
    if a:
        s = a[1]
        print(a[1])
f1.close()

reqstr = 'https://www.olx.ua/ajax/misc/contact/phone/o1d9s/?pt='+str(s)
print(reqstr)
#using cookies from previous request
coo = req.cookies
print(coo)
req2 = requests.request('GET', reqstr, data=hdr, cookies=coo)

print(req2.text)

де

hdr = {'Host': 'www.olx.ua',
'Accept': '*/*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
'DNT':1,
'Referer': 'https://www.olx.ua/obyavlenie/stroitelnye-raboty-IDo1d9s.html',
'Accept-Language':'uk,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive',
'X-Requested-With': 'XMLHttpRequest'
}

При спробі виконати такий запит в браузері підставивши свіжий токен відповідає так само, думав що в запиту мають бути правильні хедери для xhr, а парсер все одно не працює.

З.І. Є отака тема replace.org.ua/topic/8348/ де теж розібрано захист оелікс від скрапперів і є код на пхп, що начебто працював влітку. В пхп не тямлю, але чисто інтуїтивно здається мій код робить те саме, хіба що айді не витягає з коду сторінки. То це я шось криво написав, чи в оелікс змінили захист?

Post's attachments

attachment1.JPG 126.4 kb, 93 downloads since 2017-11-22 

2

Re: Не працює парсер

https://www.olx.ua/ajax/misc/contact/phone/o1d9s/?pt=e6f9e0adf0122b9c71138add1bc97bb1f6487d181fd20d58f37c208ffd1aff3536957c7337f8835bba1c2e74c37308c0325c2e9851fd64105c8ac4a1681e94ca

GET /ajax/misc/contact/phone/o1d9s/?pt=e6f9e0adf0122b9c71138add1bc97bb1f6487d181fd20d58f37c208ffd1aff3536957c7337f8835bba1c2e74c37308c0325c2e9851fd64105c8ac4a1681e94ca HTTP/1.1
Host: www.olx.ua
Connection: keep-alive
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Referer: https://www.olx.ua/obyavlenie/stroitelnye-raboty-IDo1d9s.html
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,uk;q=0.6
Cookie: xtvrn=$removed$; dfp_user_id=6f715c4d-7718-66d4-cc30-751bbeb9751a-ver2; __utmz=250720985.1514146424.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); crtg_rta=; PHPSESSID=i6rif8nvl4f90tulo2mihdc0u0; mobile_default=desktop; dfp_segment_test=100; dfp_segment_test_v2=85; pt=fe892be053d4ade758f70e2347a3db307e6766681ea677cca615d6a003d317e391a8b082aaef802a16d5119abf50abc0aaf53aa17becf9fb9d3064051d66219c; ldTd=true; __utma=250720985.853970036.1514146424.1514146424.1514234988.2; __utmc=250720985; __utmt=1; optimizelyEndUserId=oeu1514234988187r0.3468880006895869; optimizelySegments=%7B%221033243617%22%3A%22none%22%2C%221039805884%22%3A%22false%22%2C%221044912896%22%3A%22direct%22%2C%221099920464%22%3A%22gc%22%7D; optimizelyBuckets=%7B%7D; __gads=ID=0dd9c2a447c88a4d:T=1514234988:S=ALNI_MZrJeuJaivKM6BkO49wpIcs14woKQ; surveyPopupInited=%5B%22rollingNPSOLXUAwave1%22%5D; mp_1799dc4067be971353b85127f766a0a4_mixpanel=%7B%22distinct_id%22%3A%20%221608a28e5ac184-0b309e5e917d78-1e291c08-1fa400-1608a28e5adc49%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D; from_detail=1; optimizelyPendingLogEvents=%5B%5D; pa=1514235013566.69260.2650754080794462www.olx.ua0.3647097033999196+3; onap=1608a28e4d2x3beb4171-2-1608f70444ax4aec4bec-8-1514236870; __utmb=250720985.10.8.1514235069689

Спробуй побавитися з хедерами. Скидається на те, що там з куків щось береться.

I belong to the Dead Generation.
Подякували: 0xDADA11C71