【发布时间】:2019-03-28 00:16:55
【问题描述】:
当我尝试通过 python 使用 Selenium 库抓取网站时遇到问题。 关键是我想获得一些有关收集到此站点的歌曲的信息:https://bandcamp.com/?g=all&s=top&p=0&gn=0&f=all&w=0。
但是,当我尝试从相应的 html 代码中提取文本时,该过程返回一个空列表。
如果我从浏览器 (Chrome) 中查看 html 代码,我会看到文本部分,但是当我在 python 中查看相同的代码时,文本部分不会出现。
这是我的代码:
browser = webdriver.Chrome()
browser.get("https://bandcamp.com/?g=all&s=top&p=0&gn=0&f=all&w=0")
name_song = browser.find_elements_by_css_selector("a.item-title")
name_artist = browser.find_elements_by_css_selector("a.item-artist")
genre = browser.find_elements_by_class_name("item-genre")
print(name_song, name artist, genre)
当我打印这三个变量时,我得到了 html 代码,但我无法从中提取任何内容。我怎么解决这个问题?非常感谢您的帮助。
我的目标是让“Apocalypticists”、“Kriegsmachine”和“metal”,分别分配给一个不同的变量。
【问题讨论】:
-
您发布的代码仅将元素列表查找为 webdriver 对象。您是否尝试过索引元素列表,然后在每个元素后添加
.text以获取文本属性?例如,[i.text for i in name_song]? -
我尝试这样做,但问题是我得到了一个空的 str,因为它没有找到可以从 html 代码中提取的任何内容。
-
我刚刚运行了那个确切的代码并得到了你想要的输出,看看我的回答
标签: python selenium xpath web-scraping css-selectors