Python + Selenium Web 抓取动态元素

我正在尝试从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>


30秒到达战场
浏览 204回答 1
1回答

米脂

您可以尝试3个XPath的组合(|运算符)来获得您需要的东西(已勾选的项目)://td[.="☒"]/preceding::td[string-length(.)>1][1]/text()|//font[.="x"]/following::text()[1]|//font[.="þ"]/preceding::text()[1]您提供的 html 格式不正确。如果它不起作用,请提供其他内容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python