Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 硒、蟒蛇网刮_Python_Html_Selenium Webdriver_Web Scraping - Fatal编程技术网

Python 硒、蟒蛇网刮

Python 硒、蟒蛇网刮,python,html,selenium-webdriver,web-scraping,Python,Html,Selenium Webdriver,Web Scraping,我试图从HTML表中提取数据。 已成功计数该行,但在打印时它会不断重复该行。 谁能告诉我代码有什么问题吗? 谢谢 #计算行的长度 rows=len(driver.find_elements通过xpath('/html/body/form/fieldset/table[2]/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/div/table[1]/tbody/tr[2]/td[1]/table[2]/tbody/tr')) 时间。睡眠(2) 打印(行) 对于范围内的r

我试图从HTML表中提取数据。 已成功计数该行,但在打印时它会不断重复该行。 谁能告诉我代码有什么问题吗? 谢谢

#计算行的长度
rows=len(driver.find_elements通过xpath('/html/body/form/fieldset/table[2]/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/div/table[1]/tbody/tr[2]/td[1]/table[2]/tbody/tr'))
时间。睡眠(2)
打印(行)
对于范围内的r(行):
value=driver。通过xpath('/html/body/form/fieldset/table[2]/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/div/table[1]/tbody/tr[2]/td[1]/table[2]/tbody/tr[“+str(r)+”]”查找元素
打印(value.text)
#输出:
18行数
法律关系开始2018年2月7日#第一排
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
法律关系的开始2018年2月7日
样本测试用例已成功完成

如果没有您提供的URL,很难说原因。但是,第一个
tr
元素是
[1]
,因此我认为
范围
函数应该是
范围(1,行+1)
。您执行此操作的方式似乎非常间接,因为您的第一个查询似乎已检索到您要查找的所有元素。那么,为什么不只是以下几点呢

elements = driver.find_elements_by_xpath('/html/body/form/fieldset/table[2]/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/div/table[1]/tbody/tr[2]/td[1]/table[2]/tbody/tr')
#time.sleep(2) # what does this accomplish?
print(len(elements))

text_list = [element.text for element in elements] # list of strings

网站网址请?非常感谢你,无论你是谁。这是我第一次使用selenium,我一直在努力纠正昨天的错误,现在它可以根据您提供的代码工作。我之所以不提供URL,是因为它是我所在大学的管理系统,你需要提供学生id和密码。再次感谢,请接受这个答案。请参阅。如果您的范围函数如您所述,您的第一个
find_element_by_xpath
将作为参数'/html/body/form/fieldset/table[2]/tbody/tr/td[3]/table/tbody/tr[5]/td[2]/div/table[1]/tbody/tr[2]/td[1]/table[2]/tbody/tr[0]',这应该会引发NoTouchElement异常,所以我不知道你是如何得到任何结果的。你能告诉我如何将元素保存在字符串中吗?谢谢,我不知道你说的“在字符串中保存元素”是什么意思。您对
tr
元素中的文本感兴趣,而不是元素本身,对吗?这些都是字符串。是要字符串列表,还是要将所有字符串用分隔符合并成一个字符串?还是完全不同的东西?还是我对你想要什么的假设完全错了?