我无法访问bing.com网页上的所有网址。我正在使用此程序。
require 'activesupport'
我只会得到几个用HTML编写的网址, 是否可以从源页面获取网页的所有URL?或者访问这些URL是否有任何限制,任何人都可以检查并知道。提前谢谢。
答案 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>
。