Python 从网页访问URL

Python 从网页访问URL,python,Python,我无法访问bing.com网页上的所有URL,我正在使用此程序 def main(): usock = urllib.urlopen("http://www.bing.com/") parser = urllister.URLLister() parser.feed(usock.read()) usock.close() parser.close() for url in parser.urls: print url 我只会得

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

def main():
    usock = urllib.urlopen("http://www.bing.com/")
    parser = urllister.URLLister()
    parser.feed(usock.read())
    usock.close() 
    parser.close() 
    for url in parser.urls:
        print url
我只会得到几个用HTML编写的URL, 是否可以从源页面获取网页的所有URL?或者访问这些URL是否有任何限制,请任何人检查一下,让我知道。先谢谢你

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
这可能会有帮助

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']
这可能会有帮助

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


尝试使用beautifulsoup

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文档:

.iterlinks():

这将为文档中的每个链接生成(元素、属性、链接、位置)。如果链接位于文本中,则属性可能为“无”(与带有@import的
标记的情况相同)。
这将查找操作、存档、背景、引用、classid、代码库、数据、href、longdesc、profile、src、usemap、dynsrc或lowsrc属性中的任何链接。它还搜索url(链接)的样式属性,以及@import和url()的标签。
此函数不关注


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文档:

.iterlinks():

这将为文档中的每个链接生成(元素、属性、链接、位置)。如果链接位于文本中,则属性可能为“无”(与带有@import的
标记的情况相同)。
这将查找操作、存档、背景、引用、classid、代码库、数据、href、longdesc、profile、src、usemap、dynsrc或lowsrc属性中的任何链接。它还搜索url(链接)的样式属性,以及@import和url()的标签。
此函数不关注


“((?:http | ftp)s?:/*?”
不会只捕获
http
ftp
单词,这意味着什么不会只捕获单词。没有
?:
你将得到('',http'),如果你添加
?:
你将得到唯一的链接'。regex键
?:
意思是“不要抓住这个组”。您可以使用
?:
运行代码,如果不使用它,您将看到不同点。我明白您的观点,这是我的一个代码中以前的一个要求,因此我没有费心对其进行太多修改,但关于regex key,您是对的。我的坏消息请看我已经用新的更新了。
“((?:http | ftp)s?:/*?”
不会只捕获
http
ftp
单词。这意味着什么不会只捕获单词。没有
?:
你会得到(“,”http'),如果你添加
?:
你只会得到链接“。regex键
?:
意思是“不要抓住这个组”。您可以使用
?:
运行代码,如果不使用它,您将看到不同点。我明白您的观点,这是我的一个代码中以前的一个要求,因此我没有费心对其进行太多修改,但关于regex key,您是对的。我的坏,请看我已经用新的更新了。