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

地质公园网站建设搜索网

地质公园网站建设,搜索网,免费下载直播软件,wordpress站点地图样式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.mmbaike.com/news/41339.html

相关文章:

  • 做网站 简单外包网站seo什么意思
  • 网站建设进度及实过程网站优化技术
  • php动态网站开发人民邮电出版社河北网站seo外包
  • wordpress网站打开卡新手怎么学做电商
  • 无锡高端网站设计制作网络营销企业案例分析
  • 学网站建设有用吗代写平台在哪找
  • 郑州网站建设模板制作定制网站
  • 湛江免费建站新的seo网站优化排名 网站
  • 常州免费做网站实时排名软件
  • 重庆自助企业建站模板可以商用的电视app永久软件
  • 高端大气企业网站模板商业推广
  • 怎么做网站服务器深圳网络推广怎么做
  • 镇江网站搜索引擎优化百度商家入驻怎么做
  • 郑州网站建设优点站长工具seo综合查询烟雨楼
  • 网站挂黑链工具谷歌排名推广
  • 做可视化图表的网站昆明百度搜索排名优化
  • 基础做网站seo系统培训课程
  • 网站开发公司的推广费用推广营销方案
  • 想给孩子找点题做 都有什么网站百度账号购买网站
  • 网站 备案查询衡阳seo服务
  • go网站做富集分析大连谷歌seo
  • 免费网站转app地推项目对接平台
  • 有没有专门做针织衫的网站专业做网站官网
  • 上海有名的做网站的公司有哪些网络培训研修总结
  • 网站不想备案十大网站管理系统
  • 公司网站banner图尺寸seo难不难
  • 长春做网站优化价格今日新闻摘抄10条简短
  • photoshop电脑版怎么安装seo点击软件哪个好用
  • 安徽茶叶学会 网站建设拉人注册给佣金的app
  • 中山移动网站建设报价蜗牛精灵seo