如何使用 beautifulsoup 从 js 和 Reactjs 获取数据? [复制]

Posted

技术标签:

【中文标题】如何使用 beautifulsoup 从 js 和 Reactjs 获取数据? [复制]【英文标题】:How to get data from js & Reactjs using beautifulsoup? [duplicate] 【发布时间】: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 【参考方案1】:

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

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

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

【讨论】:

以上是关于如何使用 beautifulsoup 从 js 和 Reactjs 获取数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

BeautifulSoup - 从 JS 中提取 json

如何使用 beautifulSoup 从网站中提取和下载所有图像?

如何使用 BeautifulSoup 从 HTML 中去除评论标签?

如何使用 beautifulsoup 从 html 页面中抓取纬度/经度数据

使用python和BeautifulSoup从网页检索链接

如何使用 BeautifulSoup 从网站中获取所有标题?