2016-10-11 8 views
0

Я занимаюсь веб-обходом в использовании красивых. Я получаю данные с разных сайтов, но я не получаю с некоторых веб-сайтов, я нахожу, что эти веб-сайты показывают данные с помощью js.Как получить данные из js & Reactjs с помощью beautifulsoup?

Я записываю следующий сценарий в производные данные, и он отлично работает, но не в некоторых, которые являются usds 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 для извлечения данных и показать данные таким образом, я не могу получить данные по этому пути

+0

Я в замешательстве ... это JS или Python? – evolutionxbox

+0

Это питон. Но я спрашиваю, есть ли какой-то веб-сайт, который вызывает js и выводит данные, поэтому я не могу получить его по этому коду –

+0

, разве вам не нужно разбирать JS? Я думаю, вам нужно будет указать, что при вызове 'BeautifulSoup()' – Mangohero1

ответ

1

Характер сети является клиент-сервер: сервер доставляет контент на веб-сайт, и браузер отображает его. Это может быть сценарий на стороне клиента, который является кодом JavaScript, который выполняется браузером, который может изменять DOM.

Итак, чтобы просмотреть измененный DOM, любой клиент (включая ваш код Python) должен был бы создать DOM из HTML, а затем выполнить JavaScript для изменения DOM, как это было бы в браузере.

Ответ на вопрос this question может дать вам некоторые подсказки. К сожалению, поскольку я теперь заметил, что этот ответ означает, что этот вопрос действительно должен быть закрыт.