使用BeautifulSoup进行Webscraping-无法关注链接

时间:2015-12-15 18:31:53

标签: python-3.x web-scraping beautifulsoup html-parsing

这一部分是关于课程中的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

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循环中

。希望这有助于解决问题:)