2017-08-05 179 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

非常感谢,自从早上起我的头就解决了这个问题。 –

相关问题