2017-08-05 217 views
1

一個網站內置有內置HTML如何在beautifulsoup中獲取div標籤的內部html屬性

美麗的湯沒有提取嵌入的HTML代碼。

我需要提取class = qwjRop的div元素

例如,不能夠提取「在這個價格好」的div標籤

import requests 
from bs4 import BeautifulSoup 

url="https://www.flipkart.com/hp-pentium-quad-core-4-gb-1-tb-hdd-dos-15-be010tu-notebook/product-reviews/itmeprzhy4hs4akv?page1&pid=COMEPRZBAPXN2SNF" 


def clawler(in_url): 
    source_code = requests.get(in_url) 
    plain_text = source_code.text 
    soup = BeautifulSoup(plain_text, "html.parser")  

    for name in soup.findAll('div',{'class':'qwjRop'}): 
     print(name.prettify()) 
+0

你能不能給我們您遇到解析問題HTML的樣本? 「嵌入HTML代碼」究竟意味着什麼?你的意思是一個iframe? – geekonaut

+0

編輯完整的代碼,好心的看看它...... –

回答

1

該頁面的JavaScript渲染,你可以使用Selenium以使其:

首先安裝硒:

sudo pip3 install selenium 

然後獲得驅動程序https://sites.google.com/a/chromium.org/chromedriver/downloads如果您使用的是Windows或Mac,則可以使用無鍍鉻「Chrome Canary」無頭版本。

import bs4 as bs 
from selenium import webdriver 
browser = webdriver.Chrome() 
url="https://www.flipkart.com/hp-pentium-quad-core-4-gb-1-tb-hdd-dos-15-be010tu-notebook/product-reviews/itmeprzhy4hs4akv?page1&pid=COMEPRZBAPXN2SNF" 
browser.get(url) 
html_source = browser.page_source 
browser.quit() 
soup = bs.BeautifulSoup(html_source, "html.parser") 
for name in soup.findAll('div',{'class':'qwjRop'}): 
    print(name.prettify()) 

或者從事其他非硒方法見我的回答Scraping Google Finance (BeautifulSoup)

+0

非常感謝,自從早上起我的頭就解決了這個問題。 –

相關問題