request geturl作用(urllib.request 模块-urlopen方法)

本文目录
urllib.request 模块-urlopen方法
urllib.request 模块定义了以下函数:
urllib.request.urlopen( url , data=None , * , cafile=None , capath=None , cadefault=False , context=None )
参数 :
打开 url 链接,可以是字符串或者是Request对象。
data 必须是一个定义了向服务器所发送额外数据的对象,或者如果没有必要数据的话,就是None值。可以查阅Request获取详细信息。
url.request模块在HTTP请求中使用了HTTP/1.1,并且包含了Connection:close头部。
可选的 timeout 参数指定阻止诸如连接尝试等操作的超时时间(以秒为单位)(如果未指定,将使用全局默认超时设置)。这实际上只适用于HTTP,HTTPS和FTP连接。
如果指定了 context ,则它必须是描述各种SSL选项的ssl.SSLContext实例。 有关更多详细信息,请参阅HTTPSConnection。
可选的 cafile 和 capath 参数为HTTPS请求指定一组可信的CA证书。 cafile 应指向包含一系列CA证书的单个文件,而 capath 应指向散列证书文件的目录。 更多信息可以在ssl.SSLContext.load_verify_locations()中找到。
cadefault 参数被忽略。
返回值:
该函数总是返回一个可以作为 context manager 使用的对象,并且具有方法,例如;
geturl()- 返回检索的资源的URL,通常用于确定是否遵循重定向;
info()- 以email.message_from_string()实例的形式返回页面的元信息(如headers)(可快速参考HTTP Headers);
getcode()- 返回响应的HTTP状态码。
***隐藏网址***
对于由传统URLopener和FancyURLopener类明确处理的FTP,文件和数据URL和请求,此函数返回一个urllib.response.addinfourl对象。
在协议错误上引发URLError。
请注意,如果没有处理请求的handler,则可能返回None(尽管默认安装的全局OpenerDirector使用UnknownHandler来确保永不发生这种情况)。
***隐藏网址***
使用案例
1、简单读取网页信息
2、使用request
urllib.request.Request(url, data=None, headers={}, method=None)
使用request()来包装请求,再通过urlopen()获取页面。
3、发送数据,以登录知乎为例
***隐藏网址***
5、异常处理
***隐藏网址***
7、使用代理
8、超时
svg中metadata怎么关联数据库
SVG通过Ajax与数据库交换,我相信大家对Ajax并不陌生,它并不是一项新的技术,而是多种技术的综合,或者说是一种设计方式,这些技术包括JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest等技术。其中:
使用XHTML和CSS实现标准化的呈现界面。
使用DOM实现动态的显示和交互
使用XMLHttpRequest实现与服务器的异步通信(ASV3中由"getURL"函数提供该功能)
例子:
本例要实现的效果就是SVG以1秒为间隔,不断取回数据库的数据,然后显示出来。在数据库中存放的是点数据,最终SVG显示出来的是一条折线。
《?xml version="1.0" encoding="UTF-8" standalone="no"?》
《svg width="100" height="1000" onload="init(evt)"》
《script》《![CDATA[
var second=1;
function init(evt)
{
svgdoc=evt.target.ownerDocument;
setInterval("getData(second)" ,1000);
}
function getData(sec)
{
getURL("Default.aspx?type="+sec,displayCallback);
second++;
}
function displayCallback(data)
{
if(data.success)
{
string=data.content;
node=parseXML(string,svgdoc);
svgdoc.rootElement.appendChild(node);
}
}
]]》《/script》
《text id="mtext" x="200" y="300"
style="text-anchor:middle;font-size:24;font-family:Simhei;fill:red"》
实时数据显示《/text》
《/svg》
接着在htm文件中嵌入SVG
《html》
《body》
《embed src="data.svg" name="SVGEmbed" height="700" width="1000" type="image/svg+xml"》
《/body》
《/html》
在这个例子中,我是使用asp.net作为服务端与数据库进行交互,下面我们新建一个Default.aspx页面,该页面只负责数据交换的介质,不负责显示
protected void Page_Load(object sender,EventArgs e)
{
getConnection();
conn.Open();
string strSec=Request.QueryString("type");
if(strSec==null) strSec="1";
cmd=new SqlCommand("select x,y from dbo.rtData where second 《=" + strSec,conn)
dr=com.ExecuteReader();
string data="《path style=\"stroke:black;stroke-width:2;fill:none\" d=\"M100,100 ";
where(dr.Read)
{
data+="L" +dr + " ";
}
data=data+"\" /》";
dr.Close();
conn.Close();
Response.ContentType="text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(data);
Response.End();
}
python爬虫需要调用什么模块
python 爬虫常用模块:
Python标准库——urllib模块
***隐藏网址***
注:python 3.x中urllib库和urilib2库合并成了urllib库。
其中urllib2.urlopen()变成了urllib.request.urlopen(),urllib2.Request()变成了urllib.request.Request()
urllib请求返回网页
urllib.request.urlopen
urllib.request.open(url)urllib.requset.urlioen可以打开HTTP(主要)、HTTPS、FTP、协议的URL
ca 身份验证
data 以post方式提交URL时使用
***隐藏网址***
timeout 超时时间设置
函数返回对象有三个额外的方法
geturl() 返回response的url信息
常用与url重定向info()返回response的基本信息
getcode()返回response的状态代码
示例:
#coding:utf-8
import urllib.request
import time
import platform
#清屏函数(无关紧要 可以不写)
def clear():
print(u"内容过多 3秒后清屏")
time.sleep(3)
OS = platform.system()
if (OS == u’Windows’):
os.system(’cls’)
else:
os.system(’clear’)
#访问函数
def linkbaidu():
***隐藏网址***
try:
response = urllib.request.urlopen(url,timeout=3)
except urllib.URLError:
print(u’网络地址错误’)
exit()
with open(’/home/ifeng/PycharmProjects/pachong/study/baidu.txt’,’w’) as fp:
response = urllib.request.urlopen(url,timeout=3)
fp.write(response.read())
print(u’获取url信息,response.geturl()
:%s’%response.getrul())
print(u’获取返回代码,response.getcode()
:%s’ % response.getcode())
print(u’获取返回信息,response.info()
:%s’ % response.info())
print(u"获取的网页信息经存与baidu.txt")
if __name__ ==’main’:
linkbaidu()Python标准库_logging模块
logging模块能够代替print函数的功能,将标准输出到日志文件保存起来,利用loggin模块可以部分替代debug
re模块
正则表达式
sys模块
系统相关模块
sys.argv(返回一个列表,包含所有的命令行)
sys.exit(退出程序)
Scrapy框架
urllib和re配合使用已经太落后,现在主流的是Scrapy框架
更多Python相关技术文章,请访问Python教程栏目进行学习!
yii框架如何获取当前url
1、获取当前域名:
//当前域名
Yii::$app-》request-》hostInfo;2、获取除域名外的url:
//除域名外的URL
Yii::$app-》request-》getUrl();3、获取url中的路径信息(不包含host和参数):
//获取url中的路径信息(不包含host和参数)
Yii::$app-》request-》getPathInfo();4、获取url中的参数部分:
//获取url中的参数部分
Yii::$app-》getRequest()-》queryString;5、获取某个参数的值,比如id:
//获取某个参数的值,比如id
Yii::$app-》getRequest()-》get(’id’);6、获取除域名外的根目录地址:
//除域名外的根目录地址
Yii::$app-》homeUrl;(推荐学习:yii框架)

更多文章:
在线编辑器菜鸟(你好,为什么用菜鸟编辑器打开的装备图片都是花的)
2025年5月31日 23:15
elasticsearch 详解(ElasticSearch查询流程详解)
2025年8月25日 22:15
package怎么读(package怎么读 package是什么意思)
2026年3月31日 18:30
sql各个版本区别(简要描述在选择安装不同版本的SQL Server 2008时的区别)
2026年7月25日 13:45
multisim脉冲信号发生器在哪里(multisim负脉冲在哪)
2025年9月17日 06:00
bootstrap中文网组件(bootstrap 组件是指的什么)
2026年3月22日 21:45
PS真人照片转成Q版卡通漫画效果过程?开门大吉登登的真实相貌
2026年3月11日 13:45
illegal什么意思中文翻译(illegal with electrode翻译汉字是什么意思)
2025年12月14日 21:45












