Как я могу получить данные, которые содержат тег, который нельзя получить с помощью request.get? - PullRequest
0 голосов
/ 12 апреля 2019

Я хотел бы получить нужную информацию с домашней страницы ниже.

http://ticket.cgv.co.kr/Reservation/Reservation.aspx?MOVIE_CD=&MOVIE_CD_GROUP=&PLAY_YMD=&THEATER_CD=&PLAY_NUM=&PLAY_START_TM=&AREA_CD=&SCREEN_CD=&THIRD_ITEM=#

Точнее, я хочу получить всю информацию о теге li в фильме-list nano has-scrollbar-y

<div class="movie-select">
   <div class="movie-list nano has-scrollbar-y" id="movie_list">
      <li class="rating-15" data-index="0" movie_cd_group="20018753" movie_idx="81626">
          *************************
          **the data that i want!**
          *************************

      <li class="rating-15" data-index="1" movie_cd_group="20018753" movie_idx="81626">
          *************************
          **the data that i want!**
          *************************
...
...

      <li class="rating-15" data-index="100" movie_cd_group="20018753" movie_idx="81626">
          *************************
          **the data that i want!**
          *************************

Однако, когда я использую приведенный ниже код для сканирования всей информации на этой домашней странице.я не могу получить данные внутри определенного тега (div-класс 'list-list').

url = 'http://ticket.cgv.co.kr/Reservation/Reservation.aspx?MOVIE_CD=&MOVIE_CD_GROUP=&PLAY_YMD=&THEATER_CD=&PLAY_NUM=&PLAY_START_TM=&AREA_CD=&SCREEN_CD=&THIRD_ITEM=#'
r = requests.get(url)
soup = BeautifulSoup(r.text)

, когда я проверяю html текст страницы , получаемый из request.get, данных не былокак

</div>
<div class="movie-list nano has-scrollbar-y"  id="movie_list">
<ul class="content scroll-y" onscroll="movieSectionScrollEvent();"></ul>
</div>

но когда я проверяю Chrome, вся информация там!

<div class="movie-list nano has-scrollbar-y" id="movie_list">
 <ul class="content scroll-y" onscroll="movieSectionScrollEvent();"         tabindex="-1">
  <li class="rating-15" data-index="0" movie_cd_group="20018753" movie_idx="81626">
   <a href="#" onclick="return false;">
   <span class="icon">&nbsp;</span>
   <span class="text">바이스</span><span class="sreader"></span></a></li> 

  <li class="rating-15" data-index="1" movie_cd_group="20019110" movie_idx="81721">
   <a href="#" onclick="return false;">
   <span class="icon">&nbsp;</span><span class="text">미성년</

   ...

Так что это мой вопрос.

как я могу получить все данныев пределах от этой домашней страницы ?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Данные загружаются через JavaScript.

1) Либо используйте метод, подобный селену, который позволит выполнить этот рендеринг, прежде чем пытаться получить доступ к

2) Используйте инструменты разработчика и проверьте POST XHR на этом http://ticket.cgv.co.kr/CGV2011/RIA/CJ000.aspx/CJ_HP_SCHEDULE_TOTAL_DEFAULT и посмотрите, предоставляет ли он необходимую вам информацию, и можно ли ее повторить с помощью requests

1 голос
/ 12 апреля 2019

Ваша проблема - событие onclick. Вы должны взаимодействовать с javascript на этой странице, прежде чем красивый суп сможет разобрать его. Смотрите этот предыдущий ответ https://stackoverflow.com/a/29385645/10981724

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...