为了账号安全,请及时绑定邮箱和手机立即绑定

Python + Selenium Web 抓取动态元素

Python + Selenium Web 抓取动态元素

30秒到达战场 2022-08-25 15:10:12
我正在尝试从SEC存档网站中提取以下信息。1)大型加速文件管理器 2)加速文件管理器 3)非加速文件管理器 4)小型报告公司 5)新兴成长型公司这是它在网站上的显示方式:Large accelerated filer     ☒       Accelerated filer           ☐Non-accelerated filer       ☐  (Do not check if a smaller reporting company)         Smaller reporting company   ☐Emerging growth company     ☐在某些情况下,一个或多个项目可能不存在。我想编写一个通用代码,可以为许多公司提取这些值。现在我面临的问题是HTML的结构正在从一个公司到另一个公司发生变化。到目前为止,我已经遇到了3种不同的结构(请参阅下面的HTML结构)。如何编写代码以跨不同结构进行泛化?<td valign="bottom">Large&nbsp;accelerated&nbsp;filer</td><td valign="bottom">&nbsp;</td><td valign="bottom">☒</td><td valign="bottom">&nbsp;&nbsp;</td><td valign="bottom">Accelerated&nbsp;filer</td><td valign="bottom">&nbsp;</td><td valign="bottom">☐</td></tr><tr style="page-break-inside:avoid ; font-family:Times New Roman; font-size:10pt"><td valign="bottom"><font style="white-space:nowrap">Non-accelerated&nbsp;filer</font></td><td valign="bottom">&nbsp;</td><td valign="bottom">☐&nbsp;&nbsp;(Do not check if a smaller reporting company)</td><td valign="bottom">&nbsp;&nbsp;</td><td valign="bottom">Smaller&nbsp;reporting&nbsp;company</td><td valign="bottom">&nbsp;</td><td valign="bottom">☐</td></tr><tr style="page-break-inside:avoid ; font-family:Times New Roman; font-size:10pt"><td valign="bottom">Emerging&nbsp;growth&nbsp;company</td><td valign="bottom">&nbsp;</td><td valign="bottom">☐</td><td valign="bottom">&nbsp;&nbsp;</td><td valign="bottom"></td><td valign="bottom">&nbsp;</td><td valign="bottom"></td></tr>另一种结构:filer&nbsp;&nbsp;<font style="FONT-FAMILY:WINGDINGS">x</font>&nbsp;&nbsp;&nbsp;&nbsp;Accelerated filer&nbsp;&nbsp;<font style="FONT-FAMILY:WINGDINGS">¨</font>&nbsp;&nbsp;&nbsp;&nbsp;Non-accelerated filer&nbsp;&nbsp;<font style="FONT-FAMILY:WINGDINGS">¨</font>&nbsp;&nbsp;&nbsp;&nbsp;Smaller reporting company&nbsp;&nbsp;<font style="FONT-FAMILY:WINGDINGS">¨</font> </font>
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以尝试3个XPath的组合(|运算符)来获得您需要的东西(已勾选的项目):

//td[.="☒"]/preceding::td[string-length(.)>1][1]/text()|//font[.="x"]/following::text()[1]|//font[.="þ"]/preceding::text()[1]

您提供的 html 格式不正确。如果它不起作用,请提供其他内容。


查看完整回答
反对 回复 2022-08-25
  • 1 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信