我正在从网页上读表,其中一个列中有一个链接。表就是这样的
<table id="GridView1">
<tbody>
<tr>
...
</tr>
<tr>
<td>...</td>
<td><a href="http://www.google.com/" target="_blank">Link</a></td>
<td>...</td>
</tr>
...
</tbody>
</table>
我正在阅读这篇大熊猫Dataframe(版本0.16.0),在链接栏中只是说“Link”这个词,我希望在href中有实际的链接。
如果没有一种简单的方法可以通过大熊猫获取此功能,是否还有另一种方法可以简单地获取链接并手动填写它?
答案 0 :(得分:3)
假设您事先不知道链接文本并给出HTML结构所提供的内容,我们可以编写一个CSS选择器:
links = driver.find_elements_by_css_selector("#GridView1 tbody tr td:nth-child(2) a")
然后通过href
获取get_attribute()
:
print([link.get_attribute("href") for link in links])
答案 1 :(得分:1)
非常类似@alecxe提出的解决方案,但我发现更清楚。假设您拥有表ID并且只需要该表中的链接,以下内容将为您提供表中的href链接,并将其作为列添加到您的数据框中。
table = browser.find_element_by_id(table_id)
df = pd.read_html(table.get_attribute('outerHTML'), header=0)[0]
links = [link.get_attribute('href') for link in table.find_elements_by_tag_name('a')]
df['links'] = links