【问题标题】:Scraping Amazon deals page not returning html code - python抓取亚马逊交易页面不返回 html 代码 - python
【发布时间】:2018-11-21 23:25:54
【问题描述】:

我目前正在尝试使用以下代码抓取此亚马逊页面“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 代码。我究竟做错了什么 ? (我是初学者,所以它可以是任何东西)。非常感谢!

【问题讨论】:

  • 这个Q&A会帮助你。

标签: python web-scraping beautifulsoup python-requests


【解决方案1】:
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>
  ...

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多