单击带有Python的按钮以加载HTML

时间:2015-08-17 00:03:55

标签: python html youtube web-scraping

我制作的python脚本会从Youtube播放列表中删除信息。

我的问题是我的脚本不适用于包含100多个视频的播放列表,因为Youtube要求您点击“加载更多”视频。页面底部的按钮(请参阅下面的代码和图片),以便加载更多播放列表。

我的问题是如何使用Python单击此按钮以加载页面的其余部分?

enter image description here

<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more browse-items-load-more-button" type="button" onclick=";return false;" aria-label="Load more
" data-uix-load-more-target-id="pl-load-more-destination" data-uix-load-more-href="/browse_ajax?    action_continuation=1&amp;continuation=4qmFsgIuEiRWTFBMQjZKLXhzOVhod0IyRHY2ZV9rR0t4Z2xEOVNVdDBVSmQaBkNHVSUzRA%253D%253D"><span class="yt-uix-button-content">  <span     class="load-more-loading hid">
  <span class="yt-spinner">
  <span title="Loading icon" class="yt-spinner-img  yt-sprite"></span>

Loading...
  </span>

  </span>
  <span class="load-more-text">
    Load more

  </span>
</span></button>

1 个答案:

答案 0 :(得分:2)

通常单击按钮可以提交表单。此表单提交是HTTP POST请求。我已点击youtube(使用Chrome开发工具),点击next按钮,发现它是XHR GET HTTP请求。见下图: enter image description here

因此,在您最初获取页面后,您可以通过请求加载更多(第2,3页等): https://www.youtube.com/results?search_query=<search term>&page=2&spf=navigate 而不是page=2你在行中设置下一页编号,例如。 page=3等。

响应将是一个很好的格式化JSON,包含您需要的所有信息。