Python 3从文件或列表中逐行打开URL

时间:2017-07-18 15:38:39

标签: python printing get

需要帮助来弄清楚如何为多个URL进行browser.get

这是当前的代码

#OPEN FILE
import sys
f = open("ids.txt", 'w')
sys.stdout = f

#GRAB IDS
ids = [i.get_attribute('id').replace("name-", "") for i in 
browser.find_elements_by_xpath('.//*[@id[starts-with(.,"name")]]')]

#STATIC URL
url = ("https://www.someurlhere.com/page.html?id=")

#PRINT IDS & MAP TO STATIC URL
for id in ids:
    print("https://www.someurlhere.com/page.html?id=",id,sep='')
    #browser.get(url, id) 
    #This gives error get() takes 2 positional arguments but 3 were given

该打印产生一个文件ids.txt,它用ids显示所有网址 例如:

https://www.someurlhere.com/page.html?id=12345678

https://www.someurlhere.com/page.html?id=87654321

https://www.someurlhere.com/page.html?id=87283798

这是我要加载的正确网址

现在,我需要帮助为列表1中的每个网址执行browser.get,然后从每个加载的页面中获取数据。

通常我会做以下操作,但它不会生成我正在寻找的正确网址;

links = [i.get_attribute('href') for i in 
browser.find_elements_by_xpath('.//a[contains(., "name")]')]
for url in links:
    print (url, end=',')
    browser.get(url)
    time.sleep(2)

#then do something on each page

这可以逐页打开,但会产生错误的网址

我需要一种方法来逐个打开每个网址

任何帮助表示赞赏

由于

1 个答案:

答案 0 :(得分:0)

所以我设法找到了解决这个问题的方法

我更改了初始id变量,如下所示;

ids = [i.get_attribute('id').replace("name-", "https://www.someurlhere.com/page.html?id=") for i in 
browser.find_elements_by_xpath('.//*[@id[starts-with(.,"name")]]')]

所以我基本上用我想要附加在打印件上的url替换了name-(行首)。这样我就可以执行browser.get(id)并逐行打开每个url。

附加代码如下:

for id in ids:
    print(id,sep='')
    browser.get(id)