This question already has answers here:
Web-scraping JavaScript page with Python
                            
                                (14个回答)
                            
                    
                3年前关闭。
        

    

我正在使用beautiful.Web进行爬网。我从各个网站获取数据,但我从某些网站获取不到,我发现这些网站使用js显示数据。

我将以下脚本写到派生数据上,它可以正常工作,但不能用usind 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来获取数据和显示数据,所以我无法通过这种方式获取数据

最佳答案

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

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

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

07-24 16:47
查看更多