【问题标题】:Python/selenium webscrapingPython/selenium 网页抓取
【发布时间】:2017-07-29 21:23:12
【问题描述】:

for data_links 中的链接: driver.get(链接)

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

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

我的担心:

我正在尝试抓取一个网站。我正在使用 selenium/python 从 span 中抓取“501 到 1000 名员工”和“Biotech & Pharmaceuticals”,但我无法使用 xpath 从网站中提取文本元素。我尝试过 getText,获取所有属性。请帮忙!

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

提前谢谢你!

【问题讨论】:

  • 1.您希望收到什么文本? 2.请将代码发布为文本而不是图像,它可以帮助每个试图提供帮助的人。
  • 感谢您的及时回复。我试图从跨度中获得“501 到 1000 名员工”和“生物技术与制药”
  • 如果你知道你想得到Size标签后面的内容,使用bs4的find()并不难
  • 我一直在尝试使用 selenium,因为我想抓取的一些东西在 ajax 中。
  • 你仍然可以通过html = driver.page_source获取当前页面源

标签: python selenium


【解决方案1】:

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

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'

或者,当然,避免特定的索引并寻找&lt;label&gt;Size&lt;/label&gt;,它应该更具可读性:

>>> [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'

【讨论】:

  • 我想在整个项目中使用 selenium 而不是使用汤。该网站有一些沉重的 ajax 属性,我需要从那部分提取我的大部分信息。感谢您的所有帮助!
  • 非常感谢您的及时回复和耐心等待。我使用了你的 selenium 版本,它工作正常。
  • 很高兴为您提供帮助!请记住accept 答案,如果它有帮助,这对社区整体来说是一件好事。
猜你喜欢
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 2013-11-13
  • 2020-11-23
  • 2019-06-30
相关资源
最近更新 更多