我如何能够遍历网站上的数据

时间:2017-02-10 20:58:31

标签: python selenium

我想使用for循环从网站中提取用户,但我不知道如何才能正确使用"我"而不是数字1

之后

user_id = browser.find_element_by_xpath("(//div[@class='_gzjax'])["+str(i)+"]").text
  

Traceback(最近一次调用最后一次):文件" D:/ Code / Python / Instagram   取消关注/ Instagram取消关注.py",第32行,in       user_id = browser.find_element_by_xpath("(// div [@class =' _gzjax'])[" + str(i)+"]")。文本   文件   " C:\ Python33 \ lib中\站点包\硒\的webdriver \远程\ webdriver.py&#34 ;,   第293行,在find_element_by_xpath中       return self.find_element(by = By.XPATH,value = xpath)File" C:\ Python33 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py",   第752行,在find_element中       '价值':价值})['价值']文件" C:\ Python33 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py" ,   第236行,执行中       self.error_handler.check_response(response)File" C:\ Python33 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py",   第192行,在check_response中       raise exception_class(message,screen,stacktrace)selenium.common.exceptions.NoSuchElementException:消息:无法   定位元素:   {"方法":"的xpath""选择器":"(// DIV [@class =' gzjax&#39 ])[0]"}   堆栈跟踪:       在FirefoxDriver.prototype.findElementInternal (file:/// c:/users/viktor/appdata/local/temp/tmp1r0vgw/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)       在FirefoxDriver.prototype.findElement(file:/// c:/users/viktor/appdata/local/temp/tmp1r0vgw/extensions/fxdriver@googlecode.com/components/driver-component.js:10779)       在DelayedCommand.prototype.executeInternal_ / h(file:/// c:/users/viktor/appdata/local/temp/tmp1r0vgw/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)       在DelayedCommand.prototype.executeInternal_(file:/// c:/users/viktor/appdata/local/temp/tmp1r0vgw/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)       在DelayedCommand.prototype.execute /< (文件:/// C:/users/viktor/appdata/local/temp/tmp1r0vgw/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)

4 个答案:

答案 0 :(得分:1)

只需将i(首先将其转换为字符串)连接到所需的字符串:

for i in range (0,100):
    user_id = browser.find_element_by_xpath("(//div[@class='_gzjax'])["+str(i)+"]").text
    print(user_id)

答案 1 :(得分:1)

试试这个。我认为你在python中使用加号将变量连接成字符串:

user_id = browser.find_element_by_xpath("(//div[@class='_gzjax'])["+i+"]").text

看看我们如何添加("字符串" +变量+"字符串")

答案 2 :(得分:0)

您需要将i从int显式转换为字符串。怎么样:

for i in range (0,100):
    user_id = browser.find_element_by_xpath("(//div[@class='_gzjax'])["+str(i)+"]").text
    print(user_id)

答案 3 :(得分:0)

我不知道页面上有多少用户,但是现在你已经被绑定到了101.

可以循环遍历元素吗?

for i in browser.find_element_by_xpath("(//div[@class='_gzjax'])"):
    user_id = i.text
    print(user_id)

沿着这些行迭代项而不是索引的东西。