如何从js&获取数据Reactjs使用beautifulsoup?

时间:2016-10-11 07:37:37

标签: javascript python beautifulsoup web-crawler

我正在使用漂亮的网页抓取。我从各个网站获取数据,但我没有从某些网站获得我发现这些网站使用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来获取数据和显示数据,所以我不能通过这种方式获取数据

1 个答案:

答案 0 :(得分:1)

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

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

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