zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    __declspec(noinline)
    硬件遮挡查询
    #pragma pack(*) 与 __declspec(align(*))
    Interesting. 如何获取一个数组长度
    __declspec(novtable)
    如何将一个float的小数部分保存成RGBA4个8位的byte
    plain old C++ functions, base模板函数与特化的模板函数
    LeetCode 5: Longest Palindromic Substring
    LeetCode 335:Self Crossing 自交
    LeetCode 649:Dota2 Senate
  • 原文地址:https://www.cnblogs.com/buzhidaojiaoshenmoleya/p/6984495.html
Copyright © 2011-2022 走看看