javascript - 如何使用 beautifulsoup 从 js 和 Reactjs 获取数据?

标签 javascript python beautifulsoup web-crawler

我正在使用 beautiful 进行网络爬行。我从各个网站获取数据,但我没有从某些网站获取数据,我发现这些网站使用 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来获取数据并显示数据,所以我无法通过这种方式获取数据

最佳答案

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

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

this question的答案可能会给你一些线索。可悲的是,因为我现在注意到这个答案,这意味着这个问题确实应该结束。

关于javascript - 如何使用 beautifulsoup 从 js 和 Reactjs 获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972432/

相关文章:

python - Django 中 MySQL 配置不正确

python - 使用beautifulsoup获取youtube视频的信息

python - 在Python中使用BeautifulSoup提取表标签值?

javascript - Github API - 获取 Angular2 中关注者的关注者

javascript - javascript 可以同时用于两个按钮吗?

python - 如何用另一列中包含的值填充 NaN 值?

python - 配置不正确 : Error loading MySQLdb module: No module named MySQLdb -- Django 1. 4 & Google App Engine

python - 为什么它没有从 YouTube 获取任何 'a' 标签?

javascript - vuejs 2 上一个和下一个过渡

javascript - 在 JavaScript 中对日期字符串数组进行排序的最佳方法