0%

【Python】urllib、urllib2库简单使用

urllib、urllib2库简单使用(python2.7)

1. 用urllib2库发送HTTP请求:

#-*- coding:utf-8 -*-
import urllib2
import urllib

URL="http://www.baidu.com"
r=urllib2.urlopen(URL)
print r.read()

2. 带有header头的HTTP请求

import urllib2
import urllib

URL="http://www.baidu.com"
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}
req=urllib2.Request(url=URL,headers=header)
r=urllib2.urlopen(req)
print r.read()

3. 含有数据的HTTP请求(post)

#-*- encoding:utf-8 -*-
import urllib2
import urllib

URL="https://www.example.com/"
D={'wd':'苏州工业园区'}
Data=urllib.urlencode(D)
req=urllib2.Request(url=URL,data=Data)
r=urllib.urlopen(req)
print r.read()

注:百度仅支持get提交搜索,因此post直接复制执行会报错,上述例子适用于提交表单。

4. 含有数据的HTTP请求(get)

#-*- encoding:utf-8 -*-
import urllib2
import urllib

URL="http://www.baidu.com/s"
D={'wd':'苏州工业园区'}
Data=urllib.urlencode(D)
print Data
r=urllib2.urlopen(url=URL+"?"+Data)
print r.read()
print r.url

注:因为代码含有中文,因此,必须加入#-*- encoding:utf-8 -*-注释

5. 使用代理

import urllib2
httpproxy_hander=urllib2.ProxyHandler({'http':'60.208.217.25:8118'})
opener=urllib2.build_opener(httpproxy_hander)
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'}
req=urllib2.Request("http://ip.chinaz.com/getip.aspx",headers=header)
r=opener.open(req)
print r.read()
print r.url

注:因为网站限制,所以,程序访问时必须添加headers内容。

60.208.217.25:8118为有效的代理ip #验证有效时间:2018/2/5 0:16:07