【问题标题】:How to get data from js & Reactjs using beautifulsoup? [duplicate]如何使用 beautifulsoup 从 js 和 Reactjs 获取数据? [复制]
【发布时间】:2017-02-19 17:03:31
【问题描述】:

我正在使用美丽进行网络爬网。我从各个网站获取数据,但我没有从某些网站获取数据,我发现这些网站使用 js 显示数据。

我为派生数据编写了以下脚本,它工作正常,但不适用于某些使用 JS 的数据。

from bs4 import BeautifulSoup
import requests
import urllib2

params = {"url":"search-alias=aps","field-keywords":"j7"}
url = "http://www.amazon.in/s/ref=nb_sb_noss"

soup = BeautifulSoup(requests.get(url, params=params).content)
ul = soup.findAll("h2" ,{"class":"a-size-medium a-color-null s-inline s-access-title a-text-normal"})
j=0
for a in ul:
   print a.contents
   print "\n"
   j=j+1

它工作得很好,但是有些网站在那里他们使用 js 来获取数据并显示数据,所以我无法通过这种方式获取数据

【问题讨论】:

  • 我很困惑……这是 JS 还是 Python?
  • 是蟒蛇。但是我问的是有一些网站调用js并显示数据所以我不能通过这段代码得到它
  • 你不需要解析JS吗?我认为您必须在调用 BeautifulSoup() 时指定
  • 我想要调用js后的数据。现在我正在获取数据但在调用 js 之前丢失了一些数据。@DrewDavis

标签: javascript python beautifulsoup web-crawler


【解决方案1】:

Web 的本质是客户端-服务器:服务器将内容传送到网站,浏览器显示。这可能包括客户端脚本,它是浏览器执行的 JavaScript 代码,它可能会修改 DOM

因此,为了获取修改后的 DOM,任何客户端(包括您的 Python 代码)都必须从 HTML 创建一个 DOM,然后执行 JavaScript 来修改 DOM,就像浏览器一样。

this question 的答案可能会给你一些线索。可悲的是,由于我现在已经注意到这个答案,这意味着这个问题真的应该被关闭。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多