【发布时间】:2020-03-06 01:31:17
【问题描述】:
我正在抓取有关健身课程的数据并将其写入 csv 文件。在网页上,我试图抓取班级名称、描述、地址、联系电话、网站和社交链接。我正在使用BeautifulSoup 和Selenium。
元素如下所示:
<a class="_2MTzNd_HEKWjVL824SA9Li" href="https://instagram.com/stretch_london"
对于所有不同的社交都是相同的,唯一的区别是元素中的 url。
我已经能够使用下面的方法从页面中获取我想要的其他非 href 数据,即类名、描述等并写入 csv:
try:
class_name = classses_soup.find('span', {'data-component': 'LocalizableMessage'}).text
except (AttributeError, TypeError,) as e:
pass
但是我无法获得 href 链接,我想是因为它们都是相同的元素吗?因此,例如,下面的代码不起作用 - 下面的摘录是针对 instagram 链接的,但我对 facebook 和 twitter 有相同的代码行:
try:
instagram = classses_soup.find('a', {'class': '_2MTzNd_HEKWjVL824SA9Li'}).a.href
except (AttributeError, TypeError, IndexError,) as e:
pass
它给出了以下错误:
NameError: name "class_wesbite" is not defined
我做错了什么,如何让我的代码抓取每个链接,以便我可以像处理其他元素一样写入 csv?
【问题讨论】:
标签: selenium selenium-webdriver web-scraping beautifulsoup