• Python爬虫常用函数说明


    1.urllib2.urlopen(url,data,timeout)

    第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。

    第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT

    2.import urllib2

    request=urllib2.Request(url)

    response=urllib2.urlopen('request')

    print response.read()

    构造response使得逻辑上更加清晰。

    3.post和get区别:

     HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。因此GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

    具体区别见:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

    使用post方式模拟登陆:

    import urllib

    import urllib2

    values ={"username":"name","password":"password"}

    data=urllib.urlencode(values)

    url='http://xxxxx'

    request=urllib2.Request(url,data)

    response=urllib2.urlopen(request)

    print response.read()

     使用get方式模拟登陆:

    import urllib

    import urllib2

    values={}

    values['username']='name'

    values['password']='password'

    data=urllib.urlencode(values)

    url='http://xxxxx'

    geturl=url+'?'+data

    request=urllib2.Request(geturl)

    response=urllib2.urlopen(request)

    print response.read()

     在请求中设置headers:

    import urllib
    import urllib2

    url = 'http://www.server.com/login'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    values = {'username' : 'cqc', 'password' : 'XXXX' }
    headers = { 'User-Agent' : user_agent }
    data = urllib.urlencode(values)
    request = urllib2.Request(url, data, headers)
    response = urllib2.urlopen(request)
    page = response.read()

    #对付 反盗链的方式:

    headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' ,
    'Referer':'http://www.zhihu.com/articles' }传入上面request中的headers

     备注:headers中其他内容及含义:

    User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
    Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
    application/xml : 在 XML RPC,如 RESTful/SOAP 调用时使用
    application/json : 在 JSON RPC 调用时使用
    application/x-www-form-urlencoded : 浏览器提交 Web 表单时使用
    在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务

     3.urllib2使用环境变量http_proxy来设置HTTP Proxy。

    import urllib2

    enable_proxy=true

    proxy_handler=urllib2.ProxyHandler({'http://some-proxy.com:8080'})

    null_proxy_handler=urllib2.ProxyHandler({})

    if enable_proxy:

      opener=urllib2.build_opener(proxy_handler)

    else:

      opener=urllib2.build_open(null_proxy_handler)

    urllib2.install_opener(opener)

  • 相关阅读:
    通过 AWS CLI 操作 AWS S3
    AWS S3文件存储服务器搭建(新)
    Vertx 接入MongoDB (九)
    Vertx 接入Redis (八)
    Vertx Mysql数据库优化 (七)
    Vertx 接入Mysql数据库 (六)
    Vertx 实现webapi实战项目(五)
    Vertx 实现webapi实战项目(四)
    Vertx 实现webapi实战项目(三)
    正则表达式:元字符(基本可用来匹配的字符)
  • 原文地址:https://www.cnblogs.com/buzhidaojiaoshenmoleya/p/6984495.html
Copyright © 2020-2023  润新知