如何使用Selenium和Python抓取注释?

哈尼夫

我想从网站中提取“评论”。我已经尝试过使用硒,并使用xpath提取它,但是它不起作用。

from selenium import webdriver
import pandas as pd
            
driver = webdriver.Chrome()
driver.get('https://finance.detik.com/berita-ekonomi-bisnis/d-5307853/ri-disebut-punya-risiko-korupsi-yang-tinggi?_ga=2.13736693.357978333.1608782559-293324864.1608782559')
            
userid_element = driver.find_elements_by_xpath('//*[@id="cmt66364625"]/div[1]/div[1]/text()')[0]
userid = userid_element.text

结果:


IndexError                                Traceback (most recent call last)
<ipython-input-73-151acf07e320> in <module>
----> 1 userid_element = driver.find_elements_by_xpath('//*[@id="cmt66364625"]/div[1]/div[1]/text()')[0]
      2 userid = userid_element.text

IndexError: list index out of range

我试图删除列表索引

userid_element = driver.find_elements_by_xpath('//*[@id="cmt66364625"]/div[1]/div[1]/text()')
userid = userid_element.text

但结果是:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-74-890ba28d7494> in <module>
      1 userid_element = driver.find_elements_by_xpath('//*[@id="cmt66364625"]/div[1]/div[1]/text()')
----> 2 userid = userid_element.text

AttributeError: 'list' object has no attribute 'text'
DebanjanB

要从网站上抓取评论,因为评论在内,<iframe>因此您必须:

  • 诱导WebDriverWait获得所需的帧并切换到该帧

  • 诱导WebDriverWait所需visibility_of_all_elements_located()

  • 您可以使用以下定位策略之一

    • 使用CSS_SELECTOR

      driver.get('https://finance.detik.com/berita-ekonomi-bisnis/d-5307853/ri-disebut-punya-risiko-korupsi-yang-tinggi?_ga=2.13736693.357978333.1608782559-293324864.1608782559')
      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.xcomponent-component-frame.xcomponent-visible")))
      print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div[class^='comment__cmt_'][style]")))])
      
    • 使用XPATH

      driver.get('https://finance.detik.com/berita-ekonomi-bisnis/d-5307853/ri-disebut-punya-risiko-korupsi-yang-tinggi?_ga=2.13736693.357978333.1608782559-293324864.1608782559')
      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@class='xcomponent-component-frame xcomponent-visible']")))
      print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[starts-with(@class, 'comment__cmt_')][@style]")))])
      
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 控制台输出:

    ['buzzer pada kmenaa..giliran muhammdiyah ampe 400an komen..dapseeee\nLaporkan\n0BalasBagikan:  ', 'selama korupsi tidak dihukum mati disanalah korupsi masih liar dan ada kalaupun dibuat hukum mati setidaknya bisa mengurangi angka korupsi itu\nLaporkan\n2BalasBagikan:  ', 'kalo terindikasi korupsi, lalu teriak saya pancasila, biar pd takut\nLaporkan\n0BalasBagikan:  ', '1. Hukuman fisik diperberat. Hukuman sosial diadakan.\nLaporkan\n0BalasBagikan:  ', 'Padahal fokus tegakan hukum dan berantas korupsi otomatis ekonomi terangkat. Hukum tegak ekonomi kuat. Bayangkan setingkat RT aja korupsi. Dan herannya koruptor serasa lebih dihormatin dari pelaku kejahatan lain.\nLaporkan\n0BalasBagikan:  ', 'Bikin UU cashless aja Bu. Transaksi cash maks 1jt. Jadi lebih enak ditracing\nLaporkan\n0BalasBagikan:  ', 'Hukum terlalu lemah, yang pernah korupsi malah masih menjabat pemerintahaan dan malah masih mencalonkan diri sebagai bupati atau walikota dan gubernur setelah melakukan korupsi.\nLaporkan\n0BalasBagikan:  ', 'system birokrasi yg lemah, seharusnya mulai mengandalkan teknologi kontrol online untuk mengurangi kesempatan pejabat yg korupsi\nLaporkan\n0BalasBagikan:  ', 'Bukan cuma resiko, emang udah kejadian kaleeee hahahhahahaha\nLaporkan\n0BalasBagikan:  ', 'ga heran jamannya new orba\nLaporkan\n1BalasBagikan:  ']  
    

参考

您可以在以下位置找到一些相关的讨论:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 Selenium 和 Python 抓取 Glassdoor 评级

来自分类Dev

使用Python和Selenium Webdriver抓取JavaScript

来自分类Dev

尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath如何保持变化?

来自分类Dev

尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath会如何变化?

来自分类Dev

如何使用Selenium Webdriver和Python抓取所有搜索结果

来自分类Dev

如何在 Windows 10 上使用 Selenium 和 Python 3.6 抓取表格

来自分类Dev

如何使用BeautifulSoup和Python抓取页面?

来自分类Dev

你如何使用 selenium 和 BS3 抓取 javascript?

来自分类Dev

在使用 selenium 和 python 抓取数据时迭代点击

来自分类Dev

使用 Python、Selenium 和 BeautifulSoup 来抓取标签的内容?

来自分类Dev

如何使用Selenium / Python在分页网站上抓取网址

来自分类Dev

学习用Selenium和Python抓取

来自分类Dev

使用Selenium和Python抓取Morningstar网站。Selenium没有下载完整的网页

来自分类Dev

使用Selenium和PhantomJS抓取表格

来自分类Dev

如何使用Python 3.5和BeautifulSoup抓取href

来自分类Dev

如何使用Python和BeautifulSoup抓取多个Google页面

来自分类Dev

Java:如何使用Selenium从Amazon抓取图像?

来自分类Dev

如何使用Selenium抓取动态内容?

来自分类Dev

Java:如何使用Selenium从Amazon抓取图像?

来自分类Dev

如何使用Selenium抓取动态内容?

来自分类Dev

使用Selenium在Python中抓取React图表

来自分类Dev

在 Python 中使用 Selenium 抓取“onclick”表

来自分类Dev

使用 python selenium 抓取 HTML 表格

来自分类Dev

地址栏显示数据:,同时尝试通过Selenium和Python使用ChromeDriver Chrome进行抓取

来自分类Dev

使用Selenium和Python进行网络抓取时出现问题

来自分类Dev

使用Selenium和Python抓取网站时无法找到分页链接

来自分类Dev

Python中使用Selenium进行Web抓取和下拉菜单选项

来自分类Dev

使用python和selenium进行抓取,以使元素偿还文本元素

来自分类Dev

使用 Python 和 Selenium 进行抓取问题(无法定位元素)

Related 相关文章

  1. 1

    如何使用 Selenium 和 Python 抓取 Glassdoor 评级

  2. 2

    使用Python和Selenium Webdriver抓取JavaScript

  3. 3

    尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath如何保持变化?

  4. 4

    尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath会如何变化?

  5. 5

    如何使用Selenium Webdriver和Python抓取所有搜索结果

  6. 6

    如何在 Windows 10 上使用 Selenium 和 Python 3.6 抓取表格

  7. 7

    如何使用BeautifulSoup和Python抓取页面?

  8. 8

    你如何使用 selenium 和 BS3 抓取 javascript?

  9. 9

    在使用 selenium 和 python 抓取数据时迭代点击

  10. 10

    使用 Python、Selenium 和 BeautifulSoup 来抓取标签的内容?

  11. 11

    如何使用Selenium / Python在分页网站上抓取网址

  12. 12

    学习用Selenium和Python抓取

  13. 13

    使用Selenium和Python抓取Morningstar网站。Selenium没有下载完整的网页

  14. 14

    使用Selenium和PhantomJS抓取表格

  15. 15

    如何使用Python 3.5和BeautifulSoup抓取href

  16. 16

    如何使用Python和BeautifulSoup抓取多个Google页面

  17. 17

    Java:如何使用Selenium从Amazon抓取图像?

  18. 18

    如何使用Selenium抓取动态内容?

  19. 19

    Java:如何使用Selenium从Amazon抓取图像?

  20. 20

    如何使用Selenium抓取动态内容?

  21. 21

    使用Selenium在Python中抓取React图表

  22. 22

    在 Python 中使用 Selenium 抓取“onclick”表

  23. 23

    使用 python selenium 抓取 HTML 表格

  24. 24

    地址栏显示数据:,同时尝试通过Selenium和Python使用ChromeDriver Chrome进行抓取

  25. 25

    使用Selenium和Python进行网络抓取时出现问题

  26. 26

    使用Selenium和Python抓取网站时无法找到分页链接

  27. 27

    Python中使用Selenium进行Web抓取和下拉菜单选项

  28. 28

    使用python和selenium进行抓取,以使元素偿还文本元素

  29. 29

    使用 Python 和 Selenium 进行抓取问题(无法定位元素)

热门标签

归档