Windows上怎么导入urllib模块下载3模块

Windows上怎么导入urllib3模块 - Perl/Python当前位置:& &&&Windows上怎么导入urllib3模块Windows上怎么导入urllib3模块&&网友分享于:&&浏览:8次Windows上如何导入urllib3模块?我是Python新手,在Windows上使用Python3.4,IDE是PyCharm社区版。
在导入urllib3的时候,提示没有此模块(导入urllib是正常的):
我在网上找了一下,发现这个模块在安装Python的时候已经有了,具体的目录在:
C:\Python34\Lib\site-packages\pip\_vendor\requests\packages\urllib3
我看到在linux上需要用pip什么的安装,那请问我怎么才能在Windows上使用这个模块呢?
感觉在windows上开发python太坑了。------解决方案--------------------。。。可以下载的好么
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有2246人阅读
python(11)
最新版的python3.3.0已经发布了。相较于python3.0,3.2的改动并不大。但网上的大量的教程等大都以2.x版本为基础。这为想要从python3.0学起的菜鸟带来了不少的困难。 作为一只菜鸟,最近想学习一下python中urllib模块的使用方法。从网上找的最简单的实例:把google 首页的html抓取下来并显示在控制台上 代码:
urllib.urlopen('').read()
首先,使用过python3.0的朋友都知道,print已经变成含树了,需要括号。但这不是主要问题。问题是控制台显示错误,说urllib模块中没有urlopen方法。 奇怪了,网上的教程能错了?又尝试help(urllib),发现什么方法都没有,只提供了package contents,里面有5个名字。 作为一名新手,第一感觉是十分慌乱,是不是IDLE坏了,重装试试。。。当然所有尝试都以失败告终。 最后,我尝试着找找python3.3.0的change log。里面并没有找到urllib的修改记录。然而这一修改记录却在python3.0的change
log中。 原文是这样写的:
a new&urllib&package was created. It consists of code from&
urllib,&urllib2,&urlparse,
and&robotparser. The old&
modules have all been removed. The new package has five submodules:&
urllib.parse,&urllib.request,&urllib.response,&
urllib.error, and&urllib.robotparser.
urllib.request.urlopen()&function uses the url opener from&
urllib2. (Note that the unittests have not been renamed for the&
beta, but they will be renamed in the future.)
原来,3.0版本中已经将urllib2、urlparse、和robotparser并入了urllib中,并且修改urllib模块,其中包含5个子模块,即是help()中看到的那五个名字。
为了今后使用方便,在此将每个包中包含的方法列举如下: urllib.error: ContentTooShortE HTTPE URLError
urllib.parse: parse parse quotefrom quote_ unquote unquote unquoteto_
urlunsplit
urllib.request: AbstractBasicAuthH AbstractDigestAuthH BaseH CatheFTPH FTPH FancyURL FileH HTTPBasicAuthH HTTPCookieP HTTPDefaultErrorH HTTPDigestAuthH HTTPErrorP HTTPH
HTTPPasswordM HTTPPasswordMgrWithDefaultR HTTPRedirectH HTTPSHOpenerDProxyBasicAuthHandler ProxyDigestAuthH ProxyH R URL UnknowH build
install pathname2 url2
urllib.response:
urllib.robotparser: RobotFileParser
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:99062次
积分:1406
积分:1406
排名:千里之外
原创:35篇
转载:66篇
(1)(1)(8)(6)(3)(11)(3)(4)(1)(13)(3)(1)(4)(16)(6)(3)(5)(3)(7)(1)(1)Python3错误:“导入错误:没有模块名的urllib”-python-3.x,urllib2-CodeGo.net
Python3错误:“导入错误:没有模块名的urllib”
这里是我的代码:
from urllib.request import urlopen
response = urllib.urlopen(" CodeGo.net
html = response.read()
print(html)
任何帮助?
本文地址 :CodeGo.net/153416/
-------------------------------------------------------------------------------------------------------------------------
1. 如在规定的的urllib2The urllib2 module has been split across several modules in Python 3.0 named urllib.request and urllib.error. The 2to3 tool will automatically adapt imports when converting your sources to 3所以,你应该不是在说
from urllib.request import urlopen
html = urlopen(" CodeGo.net
print(html)
您当前的,现在编辑的代码示例是不正确的你说的话urllib.urlopen(" CodeGo.net
上面没有3.3工作。试试这个来代替(因人而异,等等)
import urllib.request
url = " CodeGo.net
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
print (response.read().decode('utf-8'))
对于一个脚本与Python 2(测试版本2.7.3和2.6.8)和Python 3(3.2.3和3.3.2 +)工作尝试:
#! /usr/bin/env python
# For Python 3.0 and later
from urllib.request import urlopen
except ImportError:
# Fall back to Python 2's urllib2
from urllib2 import urlopen
html = urlopen(" CodeGo.net
print(html.read())
本文标题 :Python3错误:“导入错误:没有模块名的urllib”
本文地址 :CodeGo.net/153416/
Copyright (C) 2017 CodeGo.net3相对于Python2,将urllib和urllib2打包成为了http与urllib,详解如下: http会处理所有--http请求的具体细节,其中: (1)client会处理客户端的部分 (2)server会协助你编写Python web服务器 (3)s和cookiejar会处理cookie,cookie可以在请求中数据 urllib是基于http的高层库,它有以下三个主要功能: (1)request处理客户端的请求 (2)response处理的响应 (3)parse会解析url
1.基本方法
urllib.request.urlopen(url,&data=https://my.oschina.net/liuyuantao/blog/None,&[timeout,&]*,&cafile=None,&capath=None,&cadefault=False,&context=None)
-&&&&&&&&&url: &需要打开的网址
-&&&&&&&&&data:Post提交的数据
-&&&&&&&&&timeout:设置的访问超时时间
直接用urllib.request模块的urlopen()获取页面,page的数据格式为bytes类型,需要decode()解码,转换成str类型。
from urllib import request
response = request.urlopen(r'http://python.org/')
# &http.client.HTTPResponse object at 0xBC908& HTTPResponse类型
page = response.read()
page = page.decode('utf-8')
urlopen返回对象提供方法:
-&&&&&&&&&read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作
-&&&&&&&&&info():返回HTTP对象,表示远程服务器返回的头信息
-&&&&&&&&&getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
-&&&&&&&&&geturl():返回请求的url
2.使用Request
urllib.request.Request(url,&data=https://my.oschina.net/liuyuantao/blog/None, headers={}, method=None)
使用request()来请求,再通过urlopen()获取页面。
url = r'/zhaopin/Python/?labelWords=label'
headers = {
'User-Agent': r'Mozilla/5.0 ( NT 6.1; WOW64) WebKit/537.36 (KHTML, like Gecko) '
r'/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Referer': r'/zhaopin/Python/?labelWords=label',
'Connection': 'keep-alive'
req = request.Request(url, headers=headers)
page = request.urlopen(req).read()
page = page.decode('utf-8')
用来包装头部的数据:
-&&&&&&&&&User-Agent :这个头部可以携带如下几条信息:名和、名和版本号、默认语言
-&&&&&&&&&Referer:可以用来防止盗链,有一些网站显示来源http://***.com,就是检查Referer来鉴定的
-&&&&&&&&&Connection:表示连接状态,记录Session的状态。
3.Post数据
urllib.request.urlopen(url,&data=https://my.oschina.net/liuyuantao/blog/None,&[timeout,&]*,&cafile=None,&capath=None,&cadefault=False,&context=None)
urlopen()的data参数默认为None,当data参数不为空的时候,urlopen()提交方式为Post。
from urllib import request, parse
url = r'/jobs/positionAjax.json?'
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Referer': r'/zhaopin/Python/?labelWords=label',
'Connection': 'keep-alive'
data = https://my.oschina.net/liuyuantao/blog/{'first': 'true',
'kd': 'Python'
data = https://my.oschina.net/liuyuantao/blog/parse.urlencode(data).encode('utf-8')
req = request.Request(url, headers=headers, data=https://my.oschina.net/liuyuantao/blog/data)
page = request.urlopen(req).read()
page = page.decode('utf-8')
urllib.parse.urlencode(query, doseq=False, safe='', encoding=None, errors=None)
urlencode()主要作用就是将url附上要提交的数据。&
data = https://my.oschina.net/liuyuantao/blog/{'first': 'true',
'kd': 'Python'
data = https://my.oschina.net/liuyuantao/blog/parse.urlencode(data).encode('utf-8')
经过urlencode()转换后的data数据为?first=true?pn=1?kd=Python,最后提交的url为
/jobs/positionAjax.json?first=true?pn=1?kd=Python
Post的数据必须是bytes或者iterable of bytes,不能是str,因此需要进行encode()编码
page = request.urlopen(req, data=https://my.oschina.net/liuyuantao/blog/data).read()
当然,也可以把data的数据封装在urlopen()参数中
4.异常处理
def get_page(url):
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Referer': r'/zhaopin/Python/?labelWords=label',
'Connection': 'keep-alive'
data = https://my.oschina.net/liuyuantao/blog/{'first': 'true',
'kd': 'Python'
data = https://my.oschina.net/liuyuantao/blog/parse.urlencode(data).encode('utf-8')
req = request.Request(url, headers=headers)
page = request.urlopen(req, data=https://my.oschina.net/liuyuantao/blog/data).read()
page = page.decode('utf-8')
except error.HTTPError as e:
print(e.code())
print(e.read().decode('utf-8'))
return page
5.使用代理&
urllib.request.ProxyHandler(proxies=None)
当需要抓取的网站设置了访问限制,这时就需要用到代理来抓取数据。
data = https://my.oschina.net/liuyuantao/blog/{'first': 'true',
'kd': 'Python'
proxy = request.ProxyHandler({'http': '5.22.195.215:80'})
# 设置proxy
opener = request.build_opener(proxy)
# 挂载opener
request.install_opener(opener)
# 安装opener
data = https://my.oschina.net/liuyuantao/blog/parse.urlencode(data).encode('utf-8')
page = opener.open(url, data).read()
page = page.decode('utf-8')
return page
除了使用官方标准库的urllib,我们可以使用更好用的第三方模块,建议使用requests进行的抓取! Requests 完全满足如今的需求,其功能有以下:
国际化域名和 URLs
Keep-Alive & 连接池
持久的 Cookie 会话
类浏览器式的 SSL 加密认证
基本/摘要式的身份认证
优雅的键/值 Cookies
Unicode 编码的响应体
多段文件上传
支持 .netrc
requests用法,官方手册猛戳这里,Github猛戳这里!

我要回帖

更多关于 nodejs urllib模块 的文章

 

随机推荐