使用Selenium爬取nokri.com时报str对象无text属性错误如何解决?
Selenium爬取网页元素遍历报错解决方案
错误原因
1. str object has no attribute 'text'报错原因
- 你将XPath获取到的WebElement元素存在
job_details列表后,遍历该列表的同时还向同一个列表追加提取到的字符串内容。循环执行到后半段时,遍历对象会变成你刚插入的字符串,字符串没有text属性,触发报错。 - 补充:你原代码的
for i in job_details行末尾缺少英文冒号:,本身也存在语法错误。
2. int object has no attribute 'text'报错原因
- 改用
range(len)写法时,你直接对循环变量i调用了text属性,此时i是整数类型的索引值,不是WebElement对象,需要通过job_details[i]才能取出对应位置的元素对象。
修复方案
不要在存储WebElement的原列表上做追加操作,单独新建列表存储提取到的文本即可,参考代码如下:
# 获取所有职位元素对象 job_elements = driver.find_elements_by_xpath('//a[@class="title fw500 ellipsis"]') # 新建空列表存储提取的职位文本 job_details = [] for element in job_elements: job_details.append(element.text) # 输出最终结果 print(job_details)
内容的提问来源于stack exchange,提问作者bishwajit bhattacharya
相关产品推荐
相关产品推荐

