迭代链接列表并使用Selenium进行搜索

时间:2016-10-02 02:26:35

标签: python selenium screen-scraping

当我尝试迭代一个链接列表并使用此代码访问Selenium时:

# create link list
urlList = []
with open('my.txt','r') as f: 
for i in f:
    urlList.append(i)


# navigate to URL 
for i in (urlList):
    getUrl = driver.get(i)
    driver.implicitly_wait(3)

我收到此错误:

  
    
      

selenium.common.exceptions.WebDriverException:消息:未知错误:未处理的检查程序错误:{“code”: - 32603,“message”:“无法导航到无效的网址”}       (会话信息:chrome = 51.0.2704.106)       (驱动程序信息:chromedriver = 2.9.248304,platform = Linux 4.2.0-16-generic x86_64

    
  

显然for循环是从列表中生成换行符并将它们输入到driver.get方法中。如何让它代替网址?

2 个答案:

答案 0 :(得分:1)

如果您从该文件中读取的网址混入了换行符,请尝试:

with open('my.txt','r') as f: 
    for i in f:
        urlList.append(i.strip())

这将从每个i中删除前导和尾随空格。此外,循环不会生成\n,它们存在于您的文件中,每行可能包含一个网址,每行末尾都有一个'\n'

答案 1 :(得分:0)

我在计算机上运行你的程序,但我没有收到任何错误?

这是my.txt档案,其中有两个中国网站网址:

https://www.baidu.com/
https://www.sogou.com/

这是test.py个文件,get中的网站my.txt

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import time
from selenium import webdriver

driver = webdriver.Chrome()  # Optional argument, if not specified will search path.
urlList = []
with open('my.txt', 'r') as f:
    for i in f:
        urlList.append(i)


for i in (urlList):
    print(i)
    getUrl = driver.get(i)
    time.sleep(3)
    driver.implicitly_wait(3)

这些是我程序的输出:

➜ /tmp/selenium $ python3 test.py
https://www.baidu.com/

https://www.sogou.com/

所以我认为你的计划可能还有其他错误。您能否显示my.txt和完整代码的内容?