【问题标题】:python urllib2 random website hyperlink accessingpython urllib2随机网站超链接访问
【发布时间】:2014-08-05 13:30:38
【问题描述】:

我想做一个 python 脚本,它会每隔 1 秒随机访问某个网站上的超链接。

从验证 url 开始:

def valid_url(url):
    try:
        urllib2.urlopen(url)
        return True
    except Exception, e:
        return False

print valid_url('www.python.org')
  1. 我可以使用 re 获取超链接
import urllib2
import re
url = 'http://www.python.org/'
page = urllib2.urlopen(url)
page = page.read()
links = re.findall(r"<a.*?\s*href=\"(.*?)\".*?>(.*?)</a>", page)
for link in links:
    print('href: %s, HTML text: %s' % (link[0], link[1]))

【问题讨论】:

  • 到目前为止你得到了什么?
  • 请提供更多信息,您到目前为止已经尝试过什么
  • 从验证 url 开始:def valid_url(url): try: urllib2.urlopen(url) return True except Exception, e: return False print valid_url('www.python.org')
  • 编辑问题并将其添加到那里..
  • 谢谢。我对卡住溢出有点陌生...

标签: python hyperlink urllib2


【解决方案1】:

这将起作用:

print valid_url('http://www.python.org')

你可以看看如何处理它here

如果您想访问随机超链接,则必须解析页面以收集 url,每秒使用随机选择(使用 time.sleep(1) 的循环)并使用 urlopen 进行访问。

如果您能提供更多信息,我将能够更好地为您提供帮助。

【讨论】:

    【解决方案2】:

    所以..这是我想要的脚本:

    import urllib2
    import re
    from random import randrange
    import time
    
    url = 'http://some web site...'
    page = urllib2.urlopen(url)
    page = page.read()
    links = re.findall(r"<a.*?\s*href=\"(.*?)\".*?>(.*?)</a>", page)
    
    while True:
        i = randrange(len(links))
        if not links[i][0].startswith('http'):
            n = urllib2.urlopen(url + links[i][0])
            open_url = n.read
            close_url = n.close
            # n.geturl()
            print 'Opened ' + url + links[i][0]
            time.sleep(5)
    

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 1970-01-01
      • 2011-11-14
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2017-09-29
      相关资源
      最近更新 更多