gpt4 book ai didi

Python/selenium 网络抓取

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:43 24 4
gpt4 key购买 nike

enter image description here对于 data_links 中的链接: driver.get(链接)

review_dict = {}
# get the size of company
size = driver.find_element_by_xpath('//[@id="EmpBasicInfo"]//span')

#地点 = ???也需要得到这部分。

我的担忧:

我正在尝试抓取一个网站。我正在使用 selenium/python 从跨度中抓取“501 到 1000 名员工”和“生物技术与制药”,但我无法使用 xpath 从网站中提取文本元素。我尝试过 getText,获取所有属性。请帮忙!

这是每次迭代的输出:我没有得到文本值。

提前谢谢您!

最佳答案

看来您只需要文本,而不是与某些元素交互,一种解决方案是使用 BeautifulSoup为您解析 html,使用 selenium获取由 JavaScript 构建的代码,您应该首先使用 html = driver.page_source 获取 html 内容,然后你可以执行以下操作:

html ='''
<div id="CompanyContainer">
<div id="EmpBasicInfo">
<div class="">
<div class="infoEntity"></div>
<div class="infoEntity">
<label>Industry</label>
<span class="value">Woodcliff</span>
</div>
<div class="infoEntity">
<label>Size</label>
<span class="value">501 to 1000 employees</span>
</div>
</div>
</div>
</div>
''' # Just a sample, since I don't have the actual page to interact with.
soup = BeautifulSoup(html, 'html.parser')
>>> soup.find("div", {"id":"EmpBasicInfo"}).findAll("div", {"class":"infoEntity"})[2].find("span").text
'501 to 1000 employees'

或者,当然,避免特定索引并寻找 <label>Size</label> ,它应该更具可读性:

>>> [a.span.text for a in soup.findAll("div", {"class":"infoEntity"}) if (a.label and a.label.text == 'Size')]
['501 to 1000 employees']

使用selenium你可以这样做:

>>> driver.find_element_by_xpath("//*[@id='EmpBasicInfo']/div[1]/div/div[3]/span").text
'501 to 1000 employees'

关于Python/selenium 网络抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com