精华内容
下载资源
问答
  • 主要介绍了使用Python的urllib2模块处理url和图片的两个小技巧,分别是获取带有中文参数的url内容和获取远程图片的大小和尺寸,需要的朋友可以参考下
  • 主要介绍了python爬虫 urllib模块url编码处理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦’的页面数据) import urllib.request ...response = urllib.request.urlopen(url=url) # 3.获取响应对象中的页面数据:read函数可以获取响

    案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦’的页面数据)

    import urllib.request
    # 1.指定url
    url = 'https://www.sogou.com/web?query=周杰伦'
    '''
    2.发起请求:使用urlopen函数对指定的url发起请求,
    该函数返回一个响应对象,urlopen代表打开url
    '''
    response = urllib.request.urlopen(url=url)
    # 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)
    page_text = response.read()
    # 4.持久化存储:将爬取的页面数据写入文件进行保存
    with open("sougou.html","wb") as f:
    f.write(page_text)
    print("写入数据成功")
    f.close()
    

    编码错误

    【注意】上述代码中url存在非ascii编码的数据,则该url无效。如果对其发起请求,则会报如下错误:

    UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-17: ordinal not in range(128)
    

    url的特性:url不可以存在非ASCII编码字符数据,url必须为ASCII编码的数据值。所以我们在爬虫代码中编写url时,如果url中存在非ASCII编码的数据值,则必须对其进行ASCII编码后,该url方可被使用。

    上面的“周杰伦” 不是ASCII编码字符数据,所以url就会变成无效的url,不符合url特性,所以报错误

    所以必须对url中的非ascii的数据进行ascii的编码,则该url方可被发起请求:

    需要用到 urllib.parse

    方法 1:使用quote函数

    quote函数作用:对url中所存在的特殊字符进行ASCII的编码,把url中的非ascii编码的字符单独取出来,使用quote函数进行转码,

    转码之后,把转码的结果拼接到原有的url当中。

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    import urllib.request
    import urllib.parse
    # 1.指定url
    url = 'https://www.sogou.com/web?query=周杰伦'
    word = urllib.parse.quote("周杰伦")
    # 查看转码后结果
    print(word)
    # %E5%91%A8%E6%9D%B0%E4%BC%A6
    
    from urllib.request import urlopen
    import urllib.parse
    # 1.指定url
    url = 'https://www.sogou.com/web?query='
    # url的特性:url不可以存在非ASCII编码字符数据
    word = urllib.parse.quote("周杰伦")
    # 将编码后的数据值拼接回url中
    url = url+word # 有效url
    '''
    2.发起请求:使用urlopen函数对指定的url发起请求,
    该函数返回一个响应对象,urlopen代表打开url
    '''
    response = urlopen(url=url)
    # 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)
    page_text = response.read()
    # 4.持久化存储:将爬取的页面数据写入文件进行保存
    with open("周杰伦.html","wb") as f:
    f.write(page_text)
    print("写入数据成功")
    

    以上就是本文的全部内容,希望对大家的学习有所帮助

    展开全文
  • urllib的quote处理url中的字符转义

    千次阅读 2015-01-23 16:42:26
    url中,有些字符是需要转义...在urllib可以用quote来进行处理。 def getPage(): try: base = "http://www.totallyfreestuff.com/" href = "/95748/0/1/\"We_Have_Choices\"_DVD" url = base + urllib.quot

    在url中,有些字符是需要转义的,如空格转义为%20", 引号转义为%22等。在urllib中可以用quote来进行处理。

    def getPage():
    	try:
    		base = "http://www.totallyfreestuff.com/"
    		href = "/95748/0/1/\"We_Have_Choices\"_DVD"
    		url = base + urllib.quote(href)
    		print url
    		response = urllib.urlopen(url)  
    		webPage = response.read()  
    		return webPage
    	except Exception, e:
    		print "getPage function: ", e
    		return None
    

    注意:url中只需要quote需要转义的部分,不要把scheme、host等也转义了。



    展开全文
  • urllib的quote处理url中的字符转义 在url中,有些字符是需要转义的,如空格转义为%20", 引号转义为%22等。在urllib可以用quote来进行处理。 def getPage(): try: base = ...

    urllib的quote处理url中的字符转义

    在url中,有些字符是需要转义的,如空格转义为%20", 引号转义为%22等。在urllib中可以用quote来进行处理。

    def getPage():
        try:
            base = "http://www.totallyfreestuff.com/"
            href = "/95748/0/1/\"We_Have_Choices\"_DVD"
            url = base + urllib.quote(href)
            print url
            response = urllib.urlopen(url)  
            webPage = response.read()  
            return webPage
        except Exception, e:
            print "getPage function: ", e
            return None

    注意:url中只需要quote需要转义的部分,不要把scheme、host等也转义了。

    转载于:https://www.cnblogs.com/L5251/articles/9465225.html

    展开全文
  • python3 使用urllib.parse对url进行处理

    千次阅读 2018-12-21 13:59:38
    对于处理某些通过 url 传参的请求,可以使用 urllib.parse 来处理,当然,也可以自己写方法。 下面放上一个demo: import urllib.parse   scheme = "http" host = "www.urllib_parse.com" ...

    对于处理某些通过 url 传参的请求,可以使用 urllib.parse 来处理,当然,也可以自己写方法。

    下面放上一个demo:

    import urllib.parse
     
    scheme = "http"
    host = "www.urllib_parse.com"
    path = r"test/test_1/test_2"
    data = {
        "key" : "value",
        "键" : "值"
    }
    frag = "frag"
     
    data_parse = urllib.parse.urlencode(data)                   # 将字典格式的参数转换成 url 传参,并对中文字符进行编码
    print(data_parse)
     
    data_parse_unquote = urllib.parse.unquote(data_parse)       # 将已经过 url 编码的文本进行 url 解码
    print(data_parse_unquote)
     
    data_parse_quote = urllib.parse.quote(data_parse_unquote)   # 重新编码,会对'&'、'='一起编码
    print(data_parse_quote)
     
    url_1 = urllib.parse.urlunparse((scheme, host, path, "", data_parse, frag))     # 拼接成 url 的第一种方式
    print(url_1)
     
    url_2 = urllib.parse.urlunsplit((scheme, host, path, data_parse, frag))         # 拼接成 url 的第二种方式
    print(url_2)
     
    url_11 = urllib.parse.urlparse(url_1)           # 两种方式对比
    url_22 = urllib.parse.urlsplit(url_2)
    print(url_11)
    print(url_22)

     运行结果:

    key=value&%E9%94%AE=%E5%80%BC
    key=value&键=值
    key%3Dvalue%26%E9%94%AE%3D%E5%80%BC
    http://www.urllib_parse.com/test/test_1/test_2?key=value&%E9%94%AE=%E5%80%BC#frag
    http://www.urllib_parse.com/test/test_1/test_2?key=value&%E9%94%AE=%E5%80%BC#frag
    ParseResult(scheme='http', netloc='www.urllib_parse.com', path='/test/test_1/test_2', params='', query='key=value&%E9%94%AE=%E5%80%BC', fragment='frag')
    SplitResult(scheme='http', netloc='www.urllib_parse.com', path='/test/test_1/test_2', query='key=value&%E9%94%AE=%E5%80%BC', fragment='frag')

     parse_qs, 将get请求参数转化成字典

    import urllib.parse
    
    data = 'name=czh'
    print(urllib.parse.parse_qs(data))
    
    

    # # 结果:{'name': ['czh']}

    展开全文
  • 如果想要对url的各个部分进行分割提取出来,就需要urlparse和urlsplit函数来处理 前面讲到url的组成部分,附一下链接https://blog.csdn.net/qq_27524749/article/details/105074167 urlparse和urlsplit: 有...
  • python2主要涉及两个模块来处理HTTP请求:urlliburllib2urllib模块:urllib.urlopen(url[,data[,proxies]])打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作urlopen返回对象提供方法:read()...
  • (1) 我们发起 HTTP 请求,有时会发生异常,如请求超时,登录密码错误,请求链接不存在等等,使用 urllib.request.URLError 可以捕获这些与 URL 相关的异常(2)urllib.error.URLError 是一个异常类,如果我们使用 ...
  • python2主要涉及两个模块来处理HTTP请求:urlliburllib2urllib模块:urllib.urlopen(url[,data[,proxies]])打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作 urlopen返回对象提供方法:read...
  • 使用urllib.request.urlopen(url)请求服务器报错: 原因为: 只会收到一个单纯的对于该页面访问的请求,但是服务器并不知道发送这个请求使用的浏览器,操作系统, 硬件平台等信息,而缺失这些信息的请求往往都是...
  • 对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urllib2.quote方法对参数进行url编码后传递。 content = u'你好 jb51.net' content = content....
  • 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738了。 一般格式...
  • urlliburllib2都是处理url请求的两个模块,但是相互之间存在不同,不能相互取代 urllib2可以接受一个Reuqest类的实例来设置URL请求的headers,urllib可以接受URL。意味着urllib可以伪装你的user_agent等 ...
  • 需要将无限制链接转换为本地图片进行后续处理,这里需要用到python的urllib包,该包收集了多个涉及 URL 的模块的包: urllib.request 打开和读取 URL urllib.error 包含 urllib.request 抛出的异常 urllib....
  • urllib综述

    2018-01-31 14:07:22
    从官方文档中我们可以看出urllib模块使用作处理url。 有四大模块: urllib.request: 一个url请求模块。 urllib.error: 抛出上一个模块的异常。 urllib.parse: url的转换。 urllib.robotparse: robot
  • UrlLib基础

    2018-11-30 20:00:09
    urllib的包含的模块 urllib中包括了四个模块,包括: 模块名 备注 ...urllib.request 可以用来发送request和获取request的结果...用来解析和处理URL urllib.robotparse 用来解析页面的robots.txt文件 使用url...
  • urlliburllib库是Python内置的HTTP请求库,它包含4个模块: 1.urllib.request 负责请求 http请求模块,可以用来模拟发送请求。就好比在浏览器中输入网址...个工具模块,提供了许多URL处理方法,比如拆分、解析、.
  • 对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urllib2.quote方法对参数进行url编码后传递。 ? 1 2 3 4 5
  • 具体如下:对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urllib2.quote方法对参数进行url编码后传递。content = u'你好 jb51.net...
  • python——urllib

    2020-04-24 23:25:43
    urllib.error :包含 urllib.request 抛出的异常,异常处理模块,如果请求出现异常,可以对其进行捕获,保证其它请求的正常进行。 urllib.parse :用于解析 URL,提供了许多 URL 处理方法,比如拆分、解析、合并等等...
  • urllib2

    2018-06-06 22:58:00
    可以定制header,可以处理cookie,鉴权,定制更多高级内容。 但是urllib2并不能取代urllib;因为urllib中的urlencode,是urllib2所没有的。 urllib2.urlopen()其中urloepn方法比urllib.urlopen()多了一个timeout...
  • 最近在使用python进行爬虫的学习,遇到了urllib、...urlliburllib2都是用来处理url的请求的,urllib只能接受一个确定的字符串地址的请求,但是可以进行urlencode来对url进行编码,比如进行post请求就要使用它...
  • python urllib2介绍

    2016-07-08 20:36:00
    urllib2库也提供了urlopen函数,可以urllib那样处理url,同时它还能处理Request实例,这也是urllib2不同于urllib中重要的一点。urllib2还提供了接口来处理一般情况,例如:基础验证,cookies,代理和其他,它们通过...
  • Python urllib函数

    2018-05-10 22:45:13
    包括urllib.request, urllib.error, urllib.parse, urllib.robotparser urllib.request可以处理客户端的请求urllib.error包含了urllib.request产生的异常urllib.parse用来解析和处理URLurllib.robotparse用来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 522
精华内容 208
关键字:

urllib可以处理url