对于在Python上具有用户输入的循环

时间:2016-01-08 19:46:04

标签: python parsing beautifulsoup

您好我正在学习如何使用BeautifulSoup解析HTML。我想知道是否可以在for循环中使用用户输入,如:

for (user input) in A

由于A是一个链接列表,因此用户可以选择使用输入来获取链接。

然后我使用urllib打开该链接并重复此过程。

3 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

import urllib2
from bs4 import BeautifulSoup

choice = ''
for url in urls:
    print('Go to {}?'.format(url))
    decision = input('Y/n ')
    if decision == 'Y':
        choice = url
        break

if choice:
    r = urllib2.urlopen(choice).read()
    soup = BeautifulSoup(r, 'lxml')
    # do something else

答案 1 :(得分:0)

如果你真的想打开"对我来说并不是很清楚。浏览器中的链接,所以我包含了一些代码来做到这一点。这可能是你想要的"数字位置"?

TL;博士

616.13M

全:

print("Which URL would you like to open?"
    " (Please select an option between 1-{})".format(len(A)))
for index, link in enumerate(A):
    print index+1, link

答案 2 :(得分:0)

感谢您的帮助。我在这方面找到了解决方案。

创建了两个变量:count = input()postion = input()

我在for循环中使用的计数:for _ in range(c) - 有了这个,我可以让一个过程重复用户想要的次数(在这个分配上是4)。

位置(对于此分配的预定义在3上),我用于列表索引,在包含所有URL的列表中。因此,为了打开位置3的网址,我有:

url = links[p-1](-1表示用户输入3,但列表索引以0(0,1,2 ...)开头

然后我可以使用urllib.request.urlopen.read()