我对html不太熟悉,但想用selenium构建一个简单的webscraper。我正在尝试访问reddit.com上的评论,并且在实际挑选每个元素时遇到了很多麻烦。我正在看的部分在这里:
我已经尝试了很多东西甚至在这里列出,没有一个有效。令我困惑的一件事是我使用FirePath复制Xpath,它仍然无法正常工作。 (它回来了空)。吐出的Xpath是.//*[@id='thing_t3_5khd75']/div[2]/ul/li[1]/a
答案 0 :(得分:1)
页面顶部的几个帖子都是隐藏的,因此如果使用element.text
,您将获得空字符串。另外,我建议您不要使用FirePath
,而是创建your own XPath
instead以使您的选择器更灵活
要获取您可以使用的实际值(我猜您在查看个人资料时使用Python
:)):
posts = driver.find_elements_by_xpath('//a[@class="bylink comments may-blank"]')
comments = {}
for post in posts:
comments[post.get_attribute('href')] = post.get_attribute('innerHTML')
comments
的输出类似于
{'https://www.reddit.com/r/science/comments/5kfw6w/cheetahs_heading_towards_extinction_as_population/': '1904 comments',
'https://www.reddit.com/r/pics/comments/5kh5q4/a_cutting_board_made_of_walnut_white_oak_maple/': '217 comments',...}