python例子-urllib,urllib2练习题合集.

#!/usr/bin/python
#coding:utf-8
import time
import urllib
import urllib2
from bs4 import BeautifulSoup
import re
import cookielib

def main0():
    unix_timenow = int(time.time())
    print ‘当前时间:%d‘ % unix_timenow

    timenow = time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime(unix_timenow))
    print ‘当前标准时间:%s‘ % timenow

    time.sleep(3)
    unixtime = time.mktime(time.strptime(timenow,‘%Y-%m-%d %H:%M:%S‘))
    print ‘unix时间:%s‘ % unixtime

#1.将2015-1-16 12:00:00转化为unix时间,并计算此时间3天前的格式化时间和unix时间。
def main1():
    time1 = ‘2015-1-16 12:00:00‘
    unixtime1 = time.mktime(time.strptime(time1,‘%Y-%m-%d %H:%M:%S‘))
    print ‘1:unix时间戳:%s‘ % unixtime1

    unixtime2 = unixtime1 - 60*60*24*3
    print ‘1:3天前时间戳:%s‘ % unixtime2
    time2 = time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime(unixtime2))
    print ‘1:3天前格式化时间:%s‘ % time2

#2、使用urllib访问百度首页,取得百度的title、返回状态码、内容长度、cookie值等信息。
def main2():
    url = ‘http://www.baidu.com‘
    response = urllib.urlopen(url)
    headers = response.info()
    cookie = headers[‘Set-Cookie‘]        #如果有多个cookie.则一次性读完.
    html = response.read()                #就是一个str类型的html源码
    soup = BeautifulSoup(html)
    title = soup.title.string
    statucode = response.getcode()
    htmlLength = len(html)
    print ‘title:%s\nstatus:%s\ncontentlength:%s\ncookie:%s‘ % (title,statucode,htmlLength,cookie)

# 3、使用urllib访问http://www.cz88.net/proxy/index.shtml取得代理服务器的IP地址。
def main3():
    url = ‘http://www.cz88.net/proxy/index.shtml‘
    response = urllib.urlopen(url)
    html = response.read()
    soup_html = BeautifulSoup(html)
    ip_div = soup_html.find_all(‘div‘,class_=‘box694‘)
    pattern = re.compile(‘<li><div class="ip">(.*?)</div><div class="port">(.*?)</div><div class="type">(.*?)</div><div class="addr".*?>(.*?)</div></li>‘)
    fwip = open(‘proxy_ip.txt‘,‘w‘)
    for i in ip_div[0].ul:
        #print ‘i:%s‘ % i
        items = re.findall(pattern,str(i))
        if items != [] :
            #print ‘items:%s‘ % items
            li = list(items[0])
            if li[0] != ‘IP‘:
                 fwip.write(‘,‘.join(li)+‘\n‘)
    fwip.close()

# 4、urllib2模块练习
# 使用weak_passwd.txt弱口令文件,暴力破解http://127.0.0.1/www/Login/index.html用户名和密码。
def main4():
    fo = open(‘weak_passwd.txt‘,‘r‘)
    pass_list = fo.readlines()
    for i in pass_list:
        i = i.strip()
        isok = post(‘admin‘,i)
        if isok:
            print ‘pasword:%s‘ % i
            return
    fo.close()

def post(name,pwd):
    data = urllib.urlencode({"username":name,"password":pwd});
    content_length = len(data)
    headers = {
        "Host":"192.168.2.150",
        "Pragma":"no-cache",
        "Content-Length":content_length,
        "Accept": "text/html, application/xhtml+xml, */*",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; NMJB; rv:11.0) like Gecko",
        "Content-Type": "application/x-www-form-urlencoded",
        "Referer": "http://192.168.1.139/www/Login/index.html",
        "Cookie": "thinkphp_show_page_trace=0|0; PHPSESSID=dbg5jjc9t76njqp6bimk43hjr4",
        }
        # Client = httplib.HTTPConnection("192.168.1.139",80,timeout=5)
        # Client.request("POST","/www/Login/login/",parames,headers)
        # response = Client.getresponse()

    url = ‘http://192.168.1.139/www/Login/login/‘
    request = urllib2.Request(url,data,headers)
    response = urllib2.urlopen(request)
    if response.geturl() == ‘http://192.168.1.139/www/Show/index.html‘:    #根据不同的网站需要判断不同的登陆成功方式
        return True
    else:
        return False

# 5、urllib2模块代理使用练习
#    将练习题3中得到的代理保存在文件中,使用urllib2的代理模块验证哪些代理是可用的。
def main6():
    proxy = ‘proxy_ip.txt‘
    proxy_list = open(proxy,‘r‘).readlines()
    available_ip = []
    ip_tuple = None
    for i in proxy_list:
        i = i.split(‘,‘)
        isok = testProxy(i[0],i[1])
        if isok:
            available_ip.append((i[0],i[1]));
    for j in available_ip:
        print "available‘s IP is %s:%s" % (j[0],j[1])

def testProxy(ip,port):
    #proxyip = ‘http://%s:%[email protected]%s‘ % (user, passwd, proxyserver)
    proxyip = ‘http://%s:%s‘ % (ip,port)
    proxy_handler = urllib2.ProxyHandler({‘http‘:proxyip})     #创建urllib2的ProxyHandler处理对象
    opener = urllib2.build_opener(proxy_handler)
    request = urllib2.Request(‘http://www.baidu.com‘)
    try:
        response = opener.open(request,timeout=5)
        statu = response.getcode()
        if statu == 200:
            return True
        else:
            return False
    except Exception, e:
        pass
    else:
        return False

#6.cookielib模块的使用
def main7():
    #cookiefile = ‘cookie.txt‘    #本地要保存的cookie文件名
    #cookie = cookielib.MozillaCookieJar(cookiefile)     #传入本地cookie文件名生成cookie对象.
    #cookie = cookielib.MozillaCookieJar()            #加载本地文件中的cookie时用此语句创建cookie对象
    #cookie.load(cookiefile)        #加载本地文件对象中cookie.
    cookie = cookielib.CookieJar()    #默认cookie创建方式
    cookie_handler = urllib2.HTTPCookieProcessor(cookie)    #将cookie对象加入HTTP中
    opener = urllib2.build_opener(cookie_handler)        #创建HTTP请求处理对象Handler
    url = "http://www.qq.com"
    request = urllib2.Request(url)
    response = opener.open(request,timeout=5)
    print response.getcode()

if __name__ == ‘__main__‘:
    # main0()
    # main1()
    # main2()
    main3()
    # main4()
    main5()
    # main6()
时间: 2024-08-08 01:27:24

python例子-urllib,urllib2练习题合集.的相关文章

python中urllib, urllib2,urllib3, httplib,httplib2, request的区别

permike原文python中urllib, urllib2,urllib3, httplib,httplib2, request的区别 若只使用python3.X, 下面可以不看了, 记住有个urllib的库就行了 python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests python3.X 有这些库名可用: urllib, urllib3, httplib2, requests 两者都有的urllib3

2014年880个合集Android-实例子源代码文件下载地址合集

***************************************************************************************************优质Android 源码现有各类源码接近6000套,视频教程100套,主要涉及.net网站.软件与安卓系列源码,每套源码都已经经过测试,必须附加使用说明或帮助文档.靠谱不坑爹! 需要打包下载合集地址请的朋友 ,欢迎您与我交流 QQ群: 258450620 或QQ:50841662Android 源代码

人生苦短之Python的urllib urllib2 requests

在Python中涉及到URL请求相关的操作涉及到模块有urllib,urllib2,requests,其中urllib和urllib2是Python自带的HTTP访问标准库,requsets是第三方库,需要自行安装.requests是第三方库,可以想到在使用起来它可能是最方便的一个. urllib和urllib2       urllib和urllib2模块都是跟url请求相关的,但是提供的功能是不同的.我们常用的urllib2的请求方式: response = urllib2.urlopen(

[python]利用urllib+urllib2解决爬虫分页翻页问题

最近由于公司的自动化测试工具需要将测试结果导出到excel中,奈何没有学SSH,导致无法在工具本身中添加(工具是开发做的),故转而使用python爬虫来做,开发过程中遇到了一个问题: 由于测试结果太多,需要翻页,而翻页时网址没有变化,这就导致抓取的时候没法依照网址去爬,遂去网上查找解决方法,最后找到利用urllib2提交post的方法来解决. 解决过程: 网址不变,而如果是用selenium的话,我又觉得太慢,毕竟selenium是用来做验收测试的,不是用来爬数据的.言归正传,利用urllib2

基于Python的Appium环境搭建合集

自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出我的一个疑问吧. app启用时,分不同的场景: 1.首次安装启用,有欢迎页: 2.非首次启用,直接进入到登录页: 3.配置了推荐展示时,启用app,会先展示推荐内容,才进入到登录页. 不同场景对应的activity都是不同的,我目前处理办法是,写了个输入函数,加了个if判断去对应不同的activit

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学

python通过get方式,post方式发送http请求和接收http响应-urllib urllib2

python通过get方式,post方式发送http请求和接收http响应-- import urllib模块,urllib2模块, httplib模块 http://blog.163.com/[email protected]/blog/static/132229655201231085444250/ 测试用CGI,名字为test.py,放在apache的cgi-bin目录下:#!/usr/bin/pythonimport cgidef main():     print "Content-t

Python的urllib和urllib2模块

Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL.这意味着,你不能伪装你的用户代理字符串等.urllib模块可以提供进行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的不具有这样的功能.这就是urllib与urllib2经常在一起使用的原因. 常用的方法 urllib2.u

Python库urllib与urllib2有哪些区别

分享下Python库urllib与urllib2用法区别,初学python的同学常有此困惑,今天一揭谜底. 学习Python,一直不明白urllib和urllib2的区别,以为2是1的升级版.今天看到老外写的一篇<Python: difference between urllib and urllib2>才明白其中的区别You might be intrigued by the existence of two separate URL modules in Python -urllib an