当前位置: 首页 > news >正文

039 织梦云idc网站源码手机代理网址

039 织梦云idc网站源码,手机代理网址,房产微信营销方案,石家庄高铁招聘信息网Python urllib Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 本文主要介绍 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。urllib.error - 包含 urllib.request 抛出的异常。urllib.parse …

Python urllib

Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。

本文主要介绍 Python3 的 urllib。

urllib 包 包含以下几个模块:

  • urllib.request - 打开和读取 URL。
  • urllib.error - 包含 urllib.request 抛出的异常。
  • urllib.parse - 解析 URL。
  • urllib.robotparser - 解析 robots.txt 文件。

在这里插入图片描述

urlopen 语法

urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
#url:访问的网址
#data:额外的数据,如header,form data

用法

# request:GET
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))# request: POST
# http测试:http://httpbin.org/
import urllib.parse
import urllib.request
data = bytes(urllib.parse.urlencode({'word':'hello'}),encoding='utf8')
response = urllib.request.urlopen('http://httpbin.org/post',data=data)
print(response.read())# 超时设置
import urllib.request
response = urllib.request.urlopen('http://httpbin.org/get',timeout=1)
print(response.read())import socket
import urllib.request
import urllib.errortry:response = urllib.request.urlopen('http://httpbin.org/get',timeout=0.1)
except urllib.error.URLError as e:if isinstance(e.reason,socket.timeout):print('TIME OUT')

响应

# 响应类型
import urllib.open
response = urllib.request.urlopen('https:///www.python.org')
print(type(response))
# 状态码, 响应头
import urllib.request
response = urllib.request.urlopen('https://www.python.org')
print(response.status)
print(response.getheaders())
print(response.getheader('Server'))

Request

声明一个request对象,该对象可以包括header等信息,然后用urlopen打开。

# 简单例子
import urllib.request
request = urllib.request.Requests('https://python.org')
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))# 增加header
from urllib import request, parse
url = 'http://httpbin.org/post'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36''Host':'httpbin.org'
}
# 构造POST表格
dict = {'name':'Germey'
}
data = bytes(parse.urlencode(dict),encoding='utf8')
req = request.Request(url=url,data=data,headers=headers,method='POST')
response = request.urlopen(req)
print(response.read()).decode('utf-8')
# 或者随后增加header
from urllib import request, parse
url = 'http://httpbin.org/post'
dict = {'name':'Germey'
}
req = request.Request(url=url,data=data,method='POST')
req.add_hader('User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36')
response = request.urlopen(req)
print(response.read().decode('utf-8'))

设置请求超时

有些请求可能因为网络原因无法得到响应。因此,我们可以手动设置超时时间。当请求超时,我们可以采取进一步措施,例如选择直接丢弃该请求或者再请求一次。

import urllib.requesturl = "http://tieba.baidu.com"
response = urllib.request.urlopen(url, timeout=1)
print(response.read().decode('utf-8'))

使用 data 参数提交数据

在请求某些网页时需要携带一些数据,我们就需要使用到 data 参数。

import urllib.parse
import urllib.requesturl = "http://127.0.0.1:8000/book"
params = {'name':'浮生六记','author':'沈复'
}data = bytes(urllib.parse.urlencode(params), encoding='utf8')
response = urllib.request.urlopen(url, data=data)
print(response.read().decode('utf-8'))

params 需要被转码成字节流。而 params 是一个字典。我们需要使用 urllib.parse.urlencode() 将字典转化为字符串。再使用 bytes() 转为字节流。最后使用 urlopen() 发起请求,请求是模拟用 POST 方式提交表单数据。

异常处理

捕获异常,保证程序稳定运行

# 访问不存在的页面
from urllib import request, error
try:response = request.urlopen('http://cuiqingcai.com/index.htm')
except error.URLError as e:print(e.reason)# 先捕获子类错误
from urllib imort request, error
try:response = request.urlopen('http://cuiqingcai.com/index.htm')
except error.HTTPError as e:print(e.reason, e.code, e.headers, sep='\n')
except error.URLError as e:print(e.reason)
else:print("Request Successfully')
# 判断原因
import socket
import urllib.request
import urllib.errortry:response = urllib.request.urlopen('http://httpbin.org/get',timeout=0.1)
except urllib.error.URLError as e:if isinstance(e.reason,socket.timeout):print('TIME OUT')
http://www.yayakq.cn/news/959011/

相关文章:

  • 模板建站是什么安全又舒适的避孕方法有哪些
  • 新乡彩票网站建设搭建跨境电商平台
  • 中文网站开发软件有口碑的唐山网站建设
  • 网站制作哪种好哪儿能做网站建设
  • 专业网站设计报价类似wordpress的平台
  • 宁德市建设局网站wordpress顶部通知栏
  • 广告商网站建设手机端网页设计尺寸规范
  • 访问国外的网站很慢建设网站费
  • 图标设计网站装修公司网站
  • 医院网站主页面设计前端网站开发上线的流程
  • 网站优化公司seo案例网站专题页面
  • asp 网站访问统计上海市建设安全协会网站一360
  • 怎样设计一个移动网站上海八号桥 网站建设
  • 做购物网站的数据库设计网站推荐国外
  • 洪湖自己的网站做哪个视频网站赚钱的
  • 网站开发商业秘密保密协议浙江建设信息港网站查询
  • 网站备案查询工信部官网海口网站开发师招聘
  • 如何建设与维护网站软件工程师培训机构排名
  • 机械建设网站制作湖南建设网站官网
  • wordpress删除数据库汕头seo外包
  • 定制家具网站源代码如何申请我的网站
  • 书吧网站设计论文网站如何做谷歌优化
  • 很长的网站域名怎么做短时代设计网 新网站
  • 什么值得买网站模板有没有做高仿手表的网站
  • 企业内部信息网站如何建设荣成市信用建设官方网站
  • 如何查网站pvWordPress是什么编写
  • 郑州网站关键词推广写网站的教程
  • 用react和ant.d做的网站例子wordpress首页表单
  • 商务之家网seo排名策略
  • 做设计必须知道的几个网站吗seo零基础培训