Очистка страницы сделок Амазонки, не возвращающей HTML-код - Python - PullRequest
0 голосов
/ 21 ноября 2018

В настоящее время я пытаюсь очистить эту страницу Amazon "https://www.amazon.com/b/?ie=UTF8&node=11552285011&ref_=sv_kstore_5" с помощью следующего кода:

from bs4 import BeautifulSoup
import requests
url = 'https://www.amazon.com/b/?ie=UTF8&node=11552285011&ref_=sv_kstore_5'
r = requests.get(url)
soup = BeautifulSoup(r.content)
print(soup.prettify)

Однако, когда я запускаю его вместо получения простого исходного кода HTML, я получаю кучустрок, которые для меня не имеют смысла начинать так:

<bound method Tag.prettify of <!DOCTYPE html>
<html class="a-no-js" data-19ax5a9jf="dingo"><head><script>var aPageStart = (new Date()).getTime();</script><meta charset="utf-8"/><!--  emit CSM JS -->
<style>
[class*=scx-line-clamp-]{overflow:hidden}.scx-offscreen-truncate{position:relative;left:-1000000px}.scx-line-clamp-1{max-height:16.75px}.scx-truncate-medium.scx-line-clamp-1{max-height:20.34px}.scx-truncate-small.scx-line-clamp-1{max-height:13px}.scx-line-clamp-2{max-height:35.5px}.scx-truncate-medium.scx-line-clamp-2{max-height:41.67px}.scx-truncate-small.scx-line-clamp-2{max-height:28px}.scx-line-clamp-3{max-height:54.25px}.scx-truncate-medium.scx-line-clamp-3{max-height:63.01px}.scx-truncate-small.scx-line-clamp-3{max-height:43px}.scx-line-clamp-4{max-height:73px}.scx-truncate-medium.scx-line-clamp-4{max-height:84.34px}.scx-truncate-small.scx-line-clamp-4{max-height:58px}.scx-line-clamp-5{max-height:91.75px}.scx-truncate-medium.scx-line-clamp-5{max-height:105.68px}.scx-truncate-small.scx-line-clamp-5{max-height:73px}.scx-line-clamp-6{max-height:110.5px}.scx-truncate-medium.scx-line-clamp-6{max-height:127.01

И даже когда я прокручиваю вниз, нет ничего, что действительно напоминало бы структурированный HTML-код со всей необходимой мне информацией.Я делаю неправильно? (Я новичок, так что это может быть что-нибудь на самом деле). Большое спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018
print(soup.prettify)

намерены позвонить soup.prettify.__repr__().Выходное значение равно

<bound method Tag.prettify of <!DOCTYPE html><html class="a-no-js" data-19ax5a9jf="dingo"><head>...

, в то время как необходимо вызвать метод prettify:

print(soup.prettify())

Выходное значение:

<html class="a-no-js" data-19ax5a9jf="dingo">
 <head>
  <script>
   var aPageStart = (new Date()).getTime();
  </script>
  <meta charset="utf-8"/>
  <!--  emit CSM JS -->
  <style>
  ...
...