Djo0513Что писал в заголовках? Да и вручную через браузер выдаёт ли капчу?
В headers писал всё и по отдельности и так и сяк.
Djo0513Скорее всего, что-то не дописал ты в заголовках или послал неправильное (время там или закодированный адрес IP).
Вручную не выдаёт, у него проверка на бота и после редирект что ли, на сайт, а если робот то на капчу.
Djo0513Пример заголовков сюда скопируй.
В заголовках писал очень много всего
import requests from pprint import pprint from bs4 import BeautifulSoup import re import time import random import csv #proxies = [{'http': 'http://213.149.105.12:80'}, {'http': 'http://09.111.235.90:80'}, {'http': 'http://52.42.192.151:80'}, {'http': 'http://88.159.43.160:80'}] def crauler(headers): time.sleep(30) response = requests.get( 'http://www.propertyguru.com.sg/singapore-property-listing/property-for-sale?market=residential&property_type_code[]=3A&property_type_code[]=3NG&property_type_code[]=3Am&property_type_code[]=3NGm&property_type_code[]=3I&property_type_code[]=3Im&property_type_code[]=3S&property_type_code[]=3STD&property_type=H&freetext=Queenstown&hdb_estate[]=20&ps=1', headers=headers) time.sleep(20) bsobj = BeautifulSoup(response.text, 'lxml') time.sleep(20) target = bsobj.find('div', class_='listing-list listings-page-results enabled-boost') print(bsobj) for i in target.findAll('div', class_='row'): print(i.a['title']+'\n\n') for li in i.find('li', class_='lst-sizes'): print(li) def main(): spisok = [{"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0", 'Host': 'www.propertyguru.com.sg', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate'}, {}] # Писал сюда много чего, после удалил, так как менял способ for i in spisok: crauler(i) main()
Djo0513Вручную выдаёт капчу после трёх раз. Быстро обновляешь страницу и выдаёт.
Вручную не выдаёт
Djo0513time.sleep(20) bsobj = BeautifulSoup(response.text, 'lxml') time.sleep(20)[/quote]
Djo0513Так ты руками сначала всё сделай, чтобы вообще понять, как без капчи это пройти. Там вообще может быть так, что капча всегда выдаётся. Дальше, если она не всегда выдаётся, надо понять, как они её сделали и на что она там реагирует. Она может реагировать вообще не на заголовки, а на профиль поведения клиента (ну типа переключает он ссылки или сидит на одной, заходил он за день до этого или не заходил, устраивал он раньше подозрительные действия или не устраивал). Временные проверки редко делают, только на не свойственные для человека скорости. На длинные паузы проверки не делают, потому что тут скорость интернета влияет: из-за неё может всё варьироваться и быть непонятным; нельзя гарантировать, какой у клиента интернет канал, его реальную скорость просто не определишь. Поэтому пройди это руками, там у него ещё печенье есть, оно тоже может учитываться при профилировании. Сначала докажи, что оно вообще проходимо вручную.
Сайт имеет капчу, но выдаёт её только если узнает что пользователь робот.