Python - 3

Python网页下载器

注:本代码基于Mac下的PyCharm,Python2.7与Python3(mac自带一个,自己又安装了一个),PyCharm下载地址(官网):https://www.jetbrains.com/pycharm/download/#section=mac

注册码需要到这个网站去获取:http://idea.lanyus.com
如果mac下注册码不能使用:
在终端输入:sudo vim /private/etc/hosts,然后会让你输入电脑密码,直接输入就好了(输入时终端里没有显示),然后会进到一个文件界面,然后点击i(插入),然后在文件夹中添加:0.0.0.0 account.jetbrains.com 这一句,然后shift+:wq保存一下

想在PyCharm输入中文:

Pycharm ----> File ----> Default setting ------> Editor -------> File Encodings;需要在文章开头增加 # coding:utf-8

设置使用Python使用版本

(我在此处使用的是2.7,在创建的时候选择一下)


Python - 3_第1张图片
屏幕快照 2017-05-17 15.00.19.png
本文语法:
  urllib2.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。
 usr:数据路径,一般都为网址;
 data:参数(post提交数据时使用);
 proxies:设置代理

 urlopen 返回 一个类文件对象,它包含以下方法:
 read() , readline() , readlines() , fileno() , close()
 info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息;
 getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
 geturl():返回请求的url

 cookielib.CookieJar(): 用来保持cookies(eg:采集某个网站的登录信息)
代码示例:
# !user/bin/env python3
# coding:utf-8

import urllib2,cookielib

url = "https://www.baidu.com"
print('***One')
responsel = urllib2.urlopen(url)
print responsel.getcode()
print len(responsel.read())

print('***Two')
request = urllib2.Request(url)
request.add_header("user-agent","Mozilla/5.0")
response2 = urllib2.urlopen(request)
 print response2.getcode()
 print len(response2.read())

 print('***Three')
 cj = cookielib.CookieJar()
opener =         urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
response3 = urllib2.urlopen(url)
print response3.getcode()
print cj
 print response3.read()

打印为:

  ***One
     200
     227

  ***Two
    200
    227

***Three
   200
 , , , ]>
 
  
    

 



/代码注释版/
#coding=utf-8
# urllib2下载网页

法一:
import urllib2
response = urllib2.urlopen('http://www.baidu.com')
print response.getcode()
print len(response.read())
法二: 添加data与head

三个参数 url,data,header

 import urllib2
request = urllib2.Request('http://www.baidu.com') #创建请求对象
request.add_data('a')
request.add_header('User-Agent','Mozilla/5.0')
response = urllib2.urlopen(request) #发送请求
 print response.getcode()
print len(response.read())
法三: 添加特殊情景处理器
 import urllib2, cookielib
 cj = cookielib.CookieJar() #创建cookie容器
 handle = urllib2.HTTPCookieProcessor(cj) #创建一个handel
opener = urllib2.build_opener(handle) #创建一个openner
urllib2.install_opener(opener) #给urllib2安装openner
response = urllib2.urlopen("http://www.baidu.com") #使用带有    cookie的urllib2访问网页
print response.read()

你可能感兴趣的:(Python - 3)