Python 从网页访问URL
我无法访问bing.com网页上的所有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 我只会得
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,您是对的。我的坏,请看我已经用新的更新了。