如何使用 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 从网站中提取和下载所有图像?
如何使用 BeautifulSoup 从 HTML 中去除评论标签?