zoukankan      html  css  js  c++  java
  • python爬虫入门urllib库的使用

    urllib库的使用,非常简单。

    import urllib2
    
    response = urllib2.urlopen("http://www.baidu.com")
    print response.read()

    只要几句代码就可以把一个网站的源代码下载下来。

    官方文档:https://docs.python.org/2/library/urllib2.html

    urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])

    urlopen 只要用到前面3个参数,url, data:提交的数据. timeout:超时

    也可以这样使用:

    import urllib2
    
    request = urllib2.Request("http://www.baidu.com")
    response = urllib2.urlopen(request)
    print response.read()

    这种用法比较常见。

     我们用php创建一个表单,然后用urllib2模拟表单提交

    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8" />
        </head>
        <body>
            <?php
                if( isset( $_REQUEST['submit'] ) ) {
                    $username = $_REQUEST['username'];
                    $userpwd = $_REQUEST['password'];
                    if( $username == 'ghostwu' && $userpwd = 'abc123') {
        echo "login success";
    }else{
        echo "login error";
    }
                }
            ?>
            <form action="/index.php" method="get">
                username: <input type="text" name="username" /><br/>
                password: <input type="password" name="password" /><br/>
                <input type="submit" value="submit" name="submit" />
            </form>
        </body>
    </html>

    接下来,我们先用get方式提交【备注:域名是我本地的,你需要用本地host映射,相应的服务器域名和ip】

    #coding:utf-8
    
    import urllib
    import urllib2
    
    values = { "username" : "ghostwu", "password" : "abc123", "submit" : "submit" }
    data = urllib.urlencode( values )
    url = "http://mesite.ghostwu" + "?" + data
    request = urllib2.Request( url )
    response = urllib2.urlopen( request )
    print response.read()

    执行之后,如果把用户名或者密码该错,就会出现login error.

    post提交方式,当然你要把php表单改成post提交.

    #!/usr/bin/python
    #coding:utf-8
    
    import urllib
    import urllib2
    
    values = { "username" : "ghostwu2", "password" : "abc123", "submit" : "submit" }
    data = urllib.urlencode( values )
    url = "http://mesite.ghostwu"
    request = urllib2.Request( url, data )
    response = urllib2.urlopen( request )
    print response.read()
  • 相关阅读:
    POJ3159 Candies —— 差分约束 spfa
    POJ1511 Invitation Cards —— 最短路spfa
    POJ1860 Currency Exchange —— spfa求正环
    POJ3259 Wormholes —— spfa求负环
    POJ3660 Cow Contest —— Floyd 传递闭包
    POJ3268 Silver Cow Party —— 最短路
    POJ1797 Heavy Transportation —— 最短路变形
    POJ2253 Frogger —— 最短路变形
    POJ1759 Garland —— 二分
    POJ3685 Matrix —— 二分
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9124310.html
Copyright © 2011-2022 走看看