首页 > 解决方案 > 硒返回了什么?

问题描述

在我能够简单地使用漂亮的汤沿着树向下遍历我正在寻找的东西之前,但遇到了一个 div 标签什么都不返回的问题。根据一些研究,这可能是因为网页是动态的。所以我在 ChromeDriver 中使用了 selenium,我得到了一些 html,但也得到了一个巨大的复杂的 javascript 脚本。我不确定这是什么或如何实际获得我想要的标签。

这是我想要的,但得到一个空的 div 标签

response = requests.get(aliexpress)
print(response.status_code)

soup = BeautifulSoup(response.content, "html.parser")
html = list(soup.children)[3]

body = list(html.children)[3]

index_page = list(body.children)[10]
soup.find_all('div', class_='page-container')[0]

以及我想从中获取孩子但为空的输出标签:

<div class="page-container" id="root"></div>

所以我使用了硒:

aliexpress = "https://www.aliexpress.com"

opts = Options()
opts.add_argument(" - headless")

driver = webdriver.Chrome(chrome_driver)

driver.get(aliexpress)

soup_file = driver.page_source
soup = BeautifulSoup(soup_file, "html.parser")
soup.prettify()

和一小部分结果:

for(_(e,x),s=f[0],c=f[1];s<=c;s++)if(w.innerHTML=p.replace(v,s),g.length>0){x[b="ie"]=s;break}!x.ie&&(d=N(e))&&(x[b="ie"]=d)}else((a=e.match(/AppleWebKit\\/*\\s*([\\d.]*)/i))||(a=e.match(/Safari\\/([\\d.]*)/)))&&a[1]?(x[m="webkit"]=y(a[1]),(a=e.match(/OPR\\/(\\d+\\.\\d+)/))&&a[1]?x[b="opera"]=y(a[1]):(a=e.match(/Chrome\\/([\\d.]*)/))&&a[1]?x[b="chrome"]=y(a[1]):(a=e.match(/\\/([\\d.]*) Safari/))&&a[1]?x[b="safari"]=y(a[1]):x.safari=x.webkit,(a=e.match(/Edge\\/([\\d.]*)/))&&a[1]&&(m=b="edge",x[m]=y(a[1])),/ Mobile\\//.test(e)&&e.match(/iPad|iPod|iPhone/)?(x.mobile="apple",a=e.match(/OS ([^\\s]*)/),a&&a[1]&&(x.ios=y(a[1].replace("_","."))),t="ios",a=e.match(/iPad|iPod|iPhone/),a&&a[0]&&(x[a[0].toLowerCase()]=x.ios)

标签: pythonseleniumweb-scrapingbeautifulsoup

解决方案


推荐阅读