: 내 거미 (디버깅을위한 인쇄)입니다. Splash를 스크립팅하는 유일한 방법은 LUA 스크립트를 이용하는 것입니다. 실행 끝점으로 보내고 LUA 스크립트를 만들어야합니다. 선택하려고하는 옵션을 찾았지만 양식을 제출할 위치 또는 사이트에서 작동하는 방식을 찾지 못했습니다. 나는 영어로 번역해야했다. 이 엔드 포인트는 JSON은
{"success":true,"message":"Resultados encontrados","time":"2017-11-30 16:05:20","totalRows":null,"totalPages":null,"page":null,"data":[{"idlocale":338,"idstate":31,"uf":"AC","state":"Acre","region":"N","latitude":null,"longitude":null},{"idlocale":339,"idstate":49,"uf":"AL","state":"Alagoas","region":"NE","latitude":null,"longitude":null},{"idlocale":340,"idstate":41,"uf":"AM","state":"Amazonas","region":"N","latitude":null,"longitude":null},{"idlocale":341,"idstate":30,"uf":"AP","state":"Amap\u00e1","region":"N","latitude":null,"longitude":null},{"idlocale":342,"idstate":56,"uf":"BA","state":"Bahia","region":"NE","latitude":null,"longitude":null},{"idlocale":343,"idstate":44,"uf":"CE","state":"Cear\u00e1","region":"NE","latitude":null,"longitude":null},{"idlocale":344,"idstate":47,"uf":"DF","state":"Distrito Federal","region":"CO","latitude":null,"longitude":null},{"idlocale":345,"idstate":45,"uf":"ES","state":"Esp\u00edrito Santo","region":"SE","latitude":null,"longitude":null},{"idlocale":346,"idstate":54,"uf":"GO","state":"Goi\u00e1s","region":"CO","latitude":null,"longitude":null},{"idlocale":347,"idstate":52,"uf":"MA","state":"Maranh\u00e3o","region":"NE","latitude":null,"longitude":null},{"idlocale":348,"idstate":53,"uf":"MG","state":"Minas Gerais","region":"SE","latitude":null,"longitude":null},{"idlocale":349,"idstate":39,"uf":"MS","state":"Mato Grosso do Sul","region":"CO","latitude":null,"longitude":null},{"idlocale":350,"idstate":40,"uf":"MT","state":"Mato Grosso","region":"CO","latitude":null,"longitude":null},{"idlocale":351,"idstate":50,"uf":"ND","state":"N\u00e3o Aplic\u00e1vel","region":"ND","latitude":null,"longitude":null},{"idlocale":352,"idstate":55,"uf":"PA","state":"Par\u00e1","region":"N","latitude":null,"longitude":null},{"idlocale":353,"idstate":37,"uf":"PB","state":"Para\u00edba","region":"NE","latitude":null,"longitude":null},{"idlocale":354,"idstate":29,"uf":"PE","state":"Pernambuco","region":"NE","latitude":null,"longitude":null},{"idlocale":355,"idstate":33,"uf":"PI","state":"Piau\u00ed","region":"NE","latitude":null,"longitude":null},{"idlocale":356,"idstate":32,"uf":"PR","state":"Paran\u00e1","region":"S","latitude":null,"longitude":null},{"idlocale":357,"idstate":46,"uf":"RJ","state":"Rio de Janeiro","region":"SE","latitude":null,"longitude":null},{"idlocale":358,"idstate":35,"uf":"RN","state":"Rio Grande do Norte","region":"NE","latitude":null,"longitude":null},{"idlocale":359,"idstate":38,"uf":"RO","state":"Rond\u00f4nia","region":"N","latitude":null,"longitude":null},{"idlocale":360,"idstate":43,"uf":"RR","state":"Roraima","region":"N","latitude":null,"longitude":null},{"idlocale":361,"idstate":48,"uf":"RS","state":"Rio Grande do Sul","region":"S","latitude":null,"longitude":null},{"idlocale":362,"idstate":36,"uf":"SC","state":"Santa Catarina","region":"S","latitude":null,"longitude":null},{"idlocale":363,"idstate":51,"uf":"SE","state":"Sergipe","region":"NE","latitude":null,"longitude":null},{"idlocale":364,"idstate":34,"uf":"SP","state":"S\u00e3o Paulo","region":"SE","latitude":null,"longitude":null},{"idlocale":365,"idstate":42,"uf":"TO","state":"Tocantins","region":"N","latitude":null,"longitude":null}]}
는 희망이 또 다른입니다 다음과 같이 제공 https://www.climatempo.com.br/json/busca-estados
:
나의 제안이 같은 엔드 포인트에 대한 브라우저 관리자에보고 특히 흥미로운 보이는 몇 가지 중 하나입니다 당신이 찾고있는 데이터를 얻는 방법?
그런 다음 정상적인 요청을 사용하여 데이터를 가져올 수 있습니다. 요청을 동일하게 작성하면됩니다. 일반적으로 accept, useragent 및 requested with header를 추가하면 충분합니다.
답장을 보내 주셔서 감사합니다. 또한 https://www.climatempo.com.br/json/busca-cidades-uf에 POST 요청으로 API를 사용하려고 시도했지만 이 성공하지 못했습니다. 내가 보내야하는 매개 변수는 uf = SP (또는 다른 모든 상태 약어)이지만 https://www.climatempo.com.br/json/busca-cidades-uf?uf=SP와 같은 것들이 나에게 성공을 안겨줍니다. 그릇된''. –
scraper가 페이지를 방문하면 u가 해당 게시물 요청을 작성하므로 scrapy가 올바른 세션 데이터를 갖습니다. 다른 방법이 없다면 LUA 스크립트를 작성하거나 Selenium을 사용해야합니다. 파이어 폭스를 사용하여 요청을 다시 보내고 매개 변수를 변경하지 않았지만 성공했습니다. 쿠키를 검사하여 복제 할 수 있다면 100 % 작동해야합니다. 당신이 그것을 알아낼 수 있다면 셀레늄을 사용하는 것은 노력하는 것보다 여전히 쉽습니다. – eusid