python之爬取页面(urllib库)

系统 1635 0

urllib库是python内置的http请求库,包含四个模块:

函数 说明
urllib.request 请求模块
urllib.error 异常处理模块
urllib.parse URL解析模块
urllib.robotparser robots.txt模块

robots.txt是Robots协议(网络爬虫排除协议),是互联网界通行的道德模范,基于以下原则:

  • 搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权
  • 网站有义务保护其使用者的个人信息和隐私不被侵犯

爬取白度网页

            
              import urllib.request
respone=urllib.request.urlopen('http://www.baidu.com')
html=respone.read().decode('UTF-8')
print(html)

            
          

python之爬取页面(urllib库)_第1张图片
核心的爬虫代码:urlopen.request.urlopen(url,data=None, [timeout,]*,cafile=None,capath=None,cadefault=False,context=None)

参数 说明
url 目标资源在网站的位置
data 指明额外的请求信息
timeout 超时时间,秒
cafile/capath/cadefault 实现可信任的CA证书的HTTPS请求
context 实现SSL加密传输
  • data参数只在打开htttp网址时起作用,默认为None,以GET发送请求,设置后请求方式改为POST
  • data参数必须是bytes对象,符合the standard applocation/x-www-form-urlencoded format标准
  • urlib.parse.urlencode()可以将自定义的data转化为标准格式,该函数接受mapping类型参数(dict或两个元素的元组)
    data参数的使用:
            
              import urllib
data=bytes(urllib.parse.urlencode({'world':'hello'}).encode('utf-8'))
response=urllib.request.urlopen('http://httpbin.org/post',data=data)
print(response.read())

            
          

在这里插入图片描述
timeout参数的使用:

            
              import urllib
response=urllib.request.urlopen('http://httpbin.org/get',timeout=1)
print(response.read())

            
          

在这里插入图片描述


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论