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

自己电脑做网站要下载/西点培训前十名学校

自己电脑做网站要下载,西点培训前十名学校,做免费网站怎么赚钱的,国外以紫色为背景的网站urlib库实际上不是很常用,因为其api调用复杂,已被requests模块取代。 1.request发送请求 from urllib import request #默认指定的是get请求 #urlopen可以指定data,设置了这个值,那么将变成post请求 responserequest.urlopen(http…

urlib库实际上不是很常用,因为其api调用复杂,已被requests模块取代。

1.request发送请求

from urllib import request
#默认指定的是get请求
#urlopen可以指定data,设置了这个值,那么将变成post请求
response=request.urlopen('http://www.baidu.com')
# print(response)
#返回值:返回值是一个http.client.HTTPResponse对象,有read,readline,readlines以及getcode等方法
# print(response.read())
#读取前10个字节
# print(response.read(10))
#readline读取一行
# print(response.readline())
#readlines(),读取整个文件所有行,保存在一个列表变量中,每行作为一个元素,但读取大文件比较占内存
print(response.readlines())
#获取响应的状态码
# print(response.getcode())
View Code

2.request进行下载

from urllib import request
#下载网页内容,第一个参数指定url,第二个参数指定要写入哪个文件的文件名
# request.urlretrieve('http://www.baidu.com','baidu.html')
request.urlretrieve('https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3478835771,1633744087&fm=26&gp=0.jpg','luban.jpg')
View Code

3.request的编码与解码

这个主要是针对url的

from urllib import parse
from urllib import request#urlencode函数的用法
# params={'name':'张三','age':18,'great':'hello world'}
#传一个字典
# result=parse.urlencode(params)
# print(result)# url='http://www.baidu.com/s'
# params={'wd':'蔡徐坤'}
# params=parse.urlencode(params)
# print(params)
# url=url+'?'+params
# response=request.urlopen(url)
# print(response.read())#parse_qs函数的用法    解码
params={'name':'张三','age':18,'great':'hello world'}
qs=parse.urlencode(params)
print(qs)
result=parse.parse_qs(qs)
print(result)
View Code

4.将url进行分割的功能

from urllib import request
from urllib import parseurl='http://www.baidu.com/s?wd=python&username=lqz#1'
# result=parse.urlparse(url)
# print(result)
#有时候拿到一个url,想要对这个url中的各个组成部分进行分割,那么这时候就可以使用urlparse或urlsplit来进行分割
# print('scheme:',result.scheme)
# print('netloc:',result.netloc)
# print('path:',result.path)
# print('params:',result.params)
# print('query:',result.query)
# print('fragment:',result.fragment)#fragment锚点
#urlsplit和urlparse的区别是urlsplit不会分割出params,以后使用的时候随便用哪个
#params用到的很少
#urlparse可以获取分号后的hello
url2='http://www.baidu.com/s;hello?wd=python&username=lqz#1'
print(parse.urlparse(url2))result=parse.urlsplit(url)
print(result)
print(result.scheme)
print(result.netloc)
View Code

5.使用代理

from urllib import request#7-ProxyHandler处理器
#通过ProxyHandler来设置使用代理服务器,防止同一ip访问网站次数过多被封禁
#常用的代理有:西刺,快代理,代理云
#httpbin.org专门测试http请求的,http://httpbin.org/ip 显示当前ip#没有使用代理的本机IP
url='http://httpbin.org/ip'
# resp=request.urlopen(url)
# print(resp.read())#使用代理的
#1.使用ProxyHandler传入代理构建一个handler
#2.使用上面创建的handler构建一个opener
#3.使用opener去发送一个请求#使用代理
#传入一个字典
handler=request.ProxyHandler({'http':'60.2.44.182:46534'})
opener=request.build_opener(handler)
resp=opener.open(url)
print(resp.read())
View Code

6.携带cookie登录

from urllib import request#HTTP无状态协议,是指协议对于交互性场景没有记忆能力。
#参数含义
#NAME:cookie的名字
#VALUE:cookie的值
#Expires:cookie的过期时间
#Path:cookie作用的路径
#Domain:cookie作用的域名。设置的cookie默认只在主域名起作用,要设置子域名也起作用,要加这个。
#SECURE:是否只在https协议下起作用#使用cookie模拟登陆
from urllib import request
#老师人人网账户
email='970138074@qq.com'
password='pythonspider'url='http://www.renren.com/880151247/profile'
#不使用cookie
# headers={
#     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
#
# }
# req=request.Request(url=url,headers=headers)
# resp=request.urlopen(url)
# with open('renren.html','w',encoding='utf-8') as f:
#     f.write(resp.read().decode('utf-8'))#使用cookie,这样做太麻烦了,还有其他办法
# headers={
#     "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36",
#     "Cookie":"anonymid=ju1t9qsph90pys; depovince=GW; _r01_=1; JSESSIONID=abcXfLxdWqMHi6Pe3ALNw; ick_login=e10e1e18-39d2-4e5c-a8b8-b90e4675fe8d; t=0ee4fa42a5f337b7e6368ed4f71ab8189; societyguester=0ee4fa42a5f337b7e6368ed4f71ab8189; id=970296329; xnsid=1a888270; jebecookies=f850bf5b-ecb9-40f2-b99e-541671612347|||||; ver=7.0; loginfrom=null; jebe_key=d6dba89f-a272-4afe-9157-347b5d152e41%7C49aae11d2fe745dc68a15c417d170403%7C1554333011073%7C1%7C1554333010402; wp_fold=0"
# }
# req=request.Request(url=url,headers=headers)
# resp=request.urlopen(url)
# with open('renren.html','w',encoding='utf-8') as f:
#     f.write(resp.read().decode('utf-8'))from http.cookiejar import CookieJar'''
CookieJar:管理HTTP cookie值,存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie对象。
整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失
'''headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
}
#模拟登陆
def get_opener():#创建一个cookiejar对象cookiejar=CookieJar()#使用cookiejar创建一个HTTPCookieJar对象handler=request.HTTPCookieProcessor(cookiejar)#使用上一步创建的handler创建一个openeropener=request.build_opener(handler)#使用opener发送登陆的请求(人人网的邮箱和密码)return openerdef login_renren(opener):data={'email':'970138074@qq.com','password':'pythonspider'}from urllib import parselogin_url='http://www.renren.com/ajaxLogin/login'req=request.Request(login_url,data=parse.urlencode(data).encode('utf-8'),headers=headers)opener.open(req)def visit_profile(opener):#访问个人主页dapeng_url='http://www.renren.com/880151247/profile'req=request.Request(dapeng_url,headers=headers)resp=opener.open(req)with open('renren.html','w',encoding='utf-8') as f:f.write(resp.read().decode('utf-8'))if __name__ == '__main__':opener=get_opener()login_renren(opener)visit_profile(opener)
View Code

7.cookie信息的加载与保存

from urllib import request#保存cookie到本地
from http.cookiejar import MozillaCookieJar
#指定保存到哪个文件
cookiejar=MozillaCookieJar('cookie.txt')
handler=request.HTTPCookieProcessor(cookiejar)
opener=request.build_opener(handler)
# resp=opener.open('http://www.baidu.com')#前面已经传了文件名,现在save不用传文件名。前面如果没传,则save要传文件名。每次写都会重新覆盖文件
# cookiejar.save()#浏览器关闭,cookie过期的这种cookie是无法写入文件的。
resp=opener.open('http://httpbin.org/cookies/set?course=python')
# print(resp.read())
#ignore_discard即使cookie将被丢弃也保存,ignore_expires即使cookie将过期也进行保存
cookiejar.save(ignore_discard=True,ignore_expires=True)#load  重用cookie信息,从本地loadcookie信息。要指定文件名,前面创建cookiejar的时候指定了文件名,则不用传for cookie in cookiejar:print(cookie)
View Code

 

转载于:https://www.cnblogs.com/xufengnian/p/10788168.html

http://www.jmfq.cn/news/4845043.html

相关文章:

  • 合肥做网站的公司有哪些/如何建立网上销售平台
  • 跨境电商平台培训哪家最正规/企业网站排名优化公司
  • 营销技巧的重要性/seo公司后付费
  • 公司网站建设技术方案/seo营销论文
  • 怎样做旅游城市住宿网站/中国营销网站
  • 长沙做营销型网站公司/一个新产品怎么推广
  • 公司做了网站怎么做推广/企业seo案例
  • 怎么做苹果手机网站/百度公司的发展历程
  • 衡水提供网站设计公司哪家专业/百度网站建设
  • 如何建设大型电子商务网站/建站公司哪家好
  • 学校网站建设主要成绩/seo综合查询怎么用
  • 网站如何做团购/网络营销培训
  • 98证书兼职网/汕头自动seo
  • 公司怎么做网站页面/搜索引擎seo外包
  • wordpress申请网站/舆情危机公关公司
  • 用html5做的网站过程/网站优化软件哪个好
  • 机械类网站模板/广州专门做网站
  • 昆明做企业网站多少钱/seo网络推广专员招聘
  • 政府网站建设 讲话/软文范例大全500字
  • 佛山公众平台网站推广多少钱/今日重大新闻事件
  • 虚拟机中建设iis网站/网站收录有什么用
  • 开发app找什么公司/武安百度seo
  • 广告设计网站免费/2000元代理微信朋友圈广告
  • 长春长春网站建设网/百度小程序排名优化
  • 专业网站开发哪里有/开一个网站需要多少钱
  • 免域名x网站/谷歌搜索引擎香港入口
  • 中国建设银行官网站招聘频道/app香港账号
  • 集团培训网站建设/seo个人博客
  • 手表网站 海马300米潜水表/百度快速排名优化技术
  • 珠海企业模板建站/国内最新新闻