这一部分是关于课程中的pyinformatics课程的博士。卡盘。因为它是在py2.0中,所以在使用py 3.0时我没有太多帮助。我试图刮一个有x链接的网站。收集链接后,我浏览并在特定链接上进行归零(比如x链接列表第3位的链接)。我想追求这个链接,我应该重复它以获得n个计数。 问题是我只能第一次得到输出。接下来连续几次我得到相同的结果(即,我无法输入输出进行连续解析。请查看代码并帮助我在哪里出错。这是我的第一个问题。代码缩进似乎工作正常
import urllib.request
> from bs4 import BeautifulSoup
> import json
> import ssl
>
> scontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
url = input('Enter -')
count = int(input('Count'))
pos = int(input('position'))
y = 0
n = pos- 1
html =urllib.request.urlopen(url, context=scontext).read()
soup = BeautifulSoup(html,"lxml")
tags = soup.find_all('a')
x =[tag.get('href') for tag in tags]
print(x[n])
new_url = str(x[n])
>
>
> while y<count:
> html =urllib.request.urlopen(new_url, context=scontext).read()
> soup = BeautifulSoup(html,"lxml")
> tags = soup.find_all('a')
> x = [tag.get('href') for tag in tags]
> url = str(x[n])
> print(new_url)
> y = y+1
答案 0 :(得分:1)
while y<count:
html = urllib.request.urlopen(new_url, context=scontext).read()
...
在你的while循环中,你的请求使用&#39; new_url&#39;,但这在循环中永远不会改变。你设置了名为&#39; url&#39;的变量。在while循环中,但从未使用过。
变化:
url = str(x[n])
要:
new_url = str(x[n])
在while循环中。希望这有助于解决问题:)