从网页访问URL

时间:2015-12-08 07:59:28

标签: python

我无法访问bing.com网页上的所有网址。我正在使用此程序。

require 'activesupport'

我只会得到几个用HTML编写的网址, 是否可以从源页面获取网页的所有URL?或者访问这些URL是否有任何限制,任何人都可以检查并知道。提前谢谢。

3 个答案:

答案 0 :(得分:2)

def urllist():
    import urllib2
    import re
    website = urllib2.urlopen('http://www.google.com')
    html = website.read()
    links = re.findall('"((?:http|ftp)s?://.*?)"', html)
    for link in links:
        print link

这可能会有所帮助。

答案 1 :(得分:2)

import httplib2

from BeautifulSoup import BeautifulSoup, SoupStrainer


http = httplib2.Http()

status, response = http.request('http://www.bing.com/')


for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')):

    if link.has_attr('href'):

        print link['href']

尝试使用beautifulsoup

答案 2 :(得分:0)

lxml lib示例:

from lxml.html import parse

page = parse('http://bing.com').getroot()
for l in page.iterlinks():
    if l[2].startswith('http'):
        print(l[2])

来自lxml lib doc:

  

.iterlinks():

     

这会为文档中的每个链接生成(元素,属性,链接,pos)。如果链接在文本中,则属性可以为None(与带有@import的<style>标记的情况一样)。
  这会在action,archive,background,cite,classid,codebase,data,href,longdesc,profile,src,usemap,dynsrc或lowsrc属性中找到任何链接。它还会搜索url(链接)的样式属性,以及@import和url()的<style>标记。
  此功能不关注<base href>