如何获取包含无法通过requests.get获取的标记的数据?

问题描述 投票:0回答:2

我想从下面的主页获取我想要的信息。

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=#

确切地说,我想在movie-list nano has-scrollbar-y中获取li标签的所有信息

<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 class'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)

当我检查从request.get获取的html页面文本时,没有像下的数据

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

但是当我检查铬时,所有信息都在那里!

<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">미성년</

   ...

所以这是我的问题。

我如何从this homepage获取所有数据?

python-3.x web-scraping beautifulsoup web-crawler
2个回答
2
投票

数据通过javascript加载。

1)使用像selenium这样的方法,允许在尝试访问之前进行此渲染

2)使用开发工具并检查POST XHR到这个http://ticket.cgv.co.kr/CGV2011/RIA/CJ000.aspx/CJ_HP_SCHEDULE_TOTAL_DEFAULT,看看它是否提供了你想要的信息,可以用requests复制


1
投票

您的问题是onclick事件。在美丽的汤可以解析之前,您需要与该页面上的javascript进行交互。看到此前的答案https://stackoverflow.com/a/29385645/10981724

© www.soinside.com 2019 - 2024. All rights reserved.