Python / Selenium - 无法打印所有段落的文本内容
Python / Selenium - can't print text contents of all paragraphs
这里是新手。我正在尝试打印网站上每个 'p' 标签中包含的所有文本。这是不起作用的代码:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://automatetheboringstuff.com/')
elem = browser.find_elements_by_css_selector('p')
print(elem.text)
我边学边学,所以我想看看我正在抓取的内容,这样我就知道一切都很好,然后再转到更高级的主题。老师说了"all web elements have the ".text”的方法,但是打印的时候好像不行,报错信息是:
C:\Python34\python.exe C:/Users/sk/PycharmProjects/test/temperase.py
Traceback (most recent call last):
File "C:/Users/sk/PycharmProjects/test/temperase.py", line 7, in <module>
print(elem.text)
AttributeError: 'list' object has no attribute 'text'
我做错了什么,解决方法是什么?谢谢!
再次阅读错误:
AttributeError: 'list' object has no attribute 'text'
方法find_elements_by_css_selector() returns一个list的web元素.然后,您将不得不遍历该列表,以打印每个列表的 .text。
因为elem是一个列表。所以你应该试试下面的源代码:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://automatetheboringstuff.com/')
elem = browser.find_elements_by_css_selector('p')
for el in elem:
print(el.text)
Selenium webdriver "find_elements_by_css_selector" function returns objects (list of objects ) of all occurrence element on page 所以你需要一个一个遍历并打印所有 "p" 标签内容。
同理"find_element_by_css_selector" return只第一次出现元素对象所以不需要遍历,可以直接调用方法获取内容。
这里是新手。我正在尝试打印网站上每个 'p' 标签中包含的所有文本。这是不起作用的代码:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://automatetheboringstuff.com/')
elem = browser.find_elements_by_css_selector('p')
print(elem.text)
我边学边学,所以我想看看我正在抓取的内容,这样我就知道一切都很好,然后再转到更高级的主题。老师说了"all web elements have the ".text”的方法,但是打印的时候好像不行,报错信息是:
C:\Python34\python.exe C:/Users/sk/PycharmProjects/test/temperase.py
Traceback (most recent call last):
File "C:/Users/sk/PycharmProjects/test/temperase.py", line 7, in <module>
print(elem.text)
AttributeError: 'list' object has no attribute 'text'
我做错了什么,解决方法是什么?谢谢!
再次阅读错误:
AttributeError: 'list' object has no attribute 'text'
方法find_elements_by_css_selector() returns一个list的web元素.然后,您将不得不遍历该列表,以打印每个列表的 .text。
因为elem是一个列表。所以你应该试试下面的源代码:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://automatetheboringstuff.com/')
elem = browser.find_elements_by_css_selector('p')
for el in elem:
print(el.text)
Selenium webdriver "find_elements_by_css_selector" function returns objects (list of objects ) of all occurrence element on page 所以你需要一个一个遍历并打印所有 "p" 标签内容。
同理"find_element_by_css_selector" return只第一次出现元素对象所以不需要遍历,可以直接调用方法获取内容。