使用 selenium bs4 和 python 从网站中提取链接
Extracting links from website with selenium bs4 and python
好的。
标题似乎已经有人问过这个问题,但我没能找到答案。
我需要帮助制作 link 使用 python 提取程序。
实际上它有效。它会在网页上找到所有 <a>
元素。获取他们的 href=""
并将其放入一个数组中。然后将其导出到 csv
文件中。这就是我想要的。
可是有一样东西我拿不准
网站是动态的,所以我使用 Selenium webdriver 来获得 JavaScript 结果。
该程序的代码非常简单。我用 webdriver 打开一个网站,然后获取它的内容。然后我得到所有 links
results = driver.find_elements_by_tag_name('a')
然后我用 for 循环遍历结果并用
得到 href
result.get_attribute("href")
我将结果存储在一个数组中,然后打印出来。
但问题是我无法获取 link 的名称。
<a href="https://www.google.com">This leads to Google</a>
有没有办法得到'This leads to Google'字符串。
存储在数组中的每个 link 都需要它。
感谢您的宝贵时间
更新!!!!!
因为它似乎只获得动态 links。我只注意到这一点。现在这真的很奇怪。对于硬编码项目,它 returns 一个空字符串。对于动态link,它returns它的名字。
好的。所以。答案是您应该使用 get_attribute("textContent") 而不是使用 .text。效果优于 get_attribute("innerHTML")
感谢 KunduK 的回答。你救了我的命:)
好的。
标题似乎已经有人问过这个问题,但我没能找到答案。
我需要帮助制作 link 使用 python 提取程序。
实际上它有效。它会在网页上找到所有 <a>
元素。获取他们的 href=""
并将其放入一个数组中。然后将其导出到 csv
文件中。这就是我想要的。
可是有一样东西我拿不准
网站是动态的,所以我使用 Selenium webdriver 来获得 JavaScript 结果。
该程序的代码非常简单。我用 webdriver 打开一个网站,然后获取它的内容。然后我得到所有 links
results = driver.find_elements_by_tag_name('a')
然后我用 for 循环遍历结果并用
得到href
result.get_attribute("href")
我将结果存储在一个数组中,然后打印出来。
但问题是我无法获取 link 的名称。
<a href="https://www.google.com">This leads to Google</a>
有没有办法得到'This leads to Google'字符串。
存储在数组中的每个 link 都需要它。
感谢您的宝贵时间
更新!!!!!
因为它似乎只获得动态 links。我只注意到这一点。现在这真的很奇怪。对于硬编码项目,它 returns 一个空字符串。对于动态link,它returns它的名字。
好的。所以。答案是您应该使用 get_attribute("textContent") 而不是使用 .text。效果优于 get_attribute("innerHTML")
感谢 KunduK 的回答。你救了我的命:)