python - beautifulSoup4 .select('.bnrName')가 텍스트를 가져올 수 없습니다.
伊谢尔伦
伊谢尔伦 2017-05-18 10:45:48
0
4
776

배경:
Python3에서 bs4의 선택을 사용하면 ZOZO 홈페이지 상단의 쿠폰 정보에서 매장 이름을 얻을 수 있습니다. (국내IP는 쿠폰정보를 볼 수 없는 것 같습니다. 스크롤을 하셔야 보실 수 있습니다. 섬나라 IP를 사용하시는 것이 가장 좋습니다.)

질문:
그 사람의 상점 이름이 어디에 쓰여 있는지 찾을 수 없습니다. 어떻게 얻는지 모르겠습니다. 답변을 주세요. 감사해요.

내 코드는 다음과 같습니다.

으아악

아래 스크린샷은 당신이 받고 싶은 텍스트입니다,

소스코드에 텍스트가 없는 것을 발견했습니다.

으아악

텍스트가 어디에 구현되어 있는지, bs4 select를 사용하여 표시하는 방법을 알려주세요.

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(4)
大家讲道理

ajax를 사용하여 서버에서 가져온 후 dom을 조작하여 브라우저에서 js를 실행하면 텍스트도 추가됩니다. 크롤러로 크롤링을 했을 때 해당 js를 실행하지 않아서 텍스트를 추가하지 않았습니다.

이런 경우에는 브라우저의 f12에서 네트워크를 확인하고, http 요청의 URL을 찾아 텍스트를 가져온 다음, 이 URL을 직접 요청하여 필요한 정보를 얻을 수 있습니다.

習慣沉默

소스 코드를 보기 위해 브라우저에서 http://zozo.jp/를 열었는데 원하는 bnrName을 찾지 못했습니다

小葫芦

브라우저를 마우스 오른쪽 버튼으로 클릭하고 "웹 페이지 소스 코드 보기"를 통해 텍스트를 찾을 수 없는 경우 이를 크롤링하려면 js 또는 ajax를 사용하여 웹 페이지를 동적으로 로드해야 합니다. 일종의 동적 페이지가 필요합니다. 어느 쪽이든 수동으로 요청을 직접 시뮬레이션하거나 셀레늄을 사용하여 이를 포착할 수 있습니다

小葫芦

실제로 js에 의해 생성되었으며 헤드리스 브라우저를 사용하여 시뮬레이션 및 캡처되었습니다. 모두 감사합니다!

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿