美文网首页
python爬虫基础测试

python爬虫基础测试

作者: xiaozhoua | 来源:发表于2018-09-02 15:31 被阅读0次

    1requests基本使用

    主要有get/post/put三种方式,返回的是响应对象(response object):
    res = resquests.get/post/put(url,params,data,...)
    对于每种方式(method),其可传递的参数包括以下 额 好多种:

    参数 说明 煮个小栗子
    url 待获取页面的url链接 requests.get("http://tieba.baidu.com")
    params 将字典或字节序列作为参数添加到url中 kw={"kw":"李毅"}
    requests.get(url,params=kw)
    # 得到的res为“http://tieba.baidu.com/f?kw=李毅”
    data 字典,字节序列或文件对象,作为res的内容 待补充
    headers 字典,HTTP定制头 header = {"User-Agent":"Mozilla/5.0"}
    resq.get(url,headers=header)
    timeout 设定超时时间,单位为秒
    proxies 字典类型,设定访问代理服务器 proxie={"http:":"http://12.34.56.79:9527"}
    resq.get(url,proxies=proxie)
    verify 认证SSL证书开关,默认为False
    json JSON格式的数据,作为resquests的内容
    auth 元祖,支持HTTP认证功能
    1.1 基本get请求
    # ===============1、基本GET请求---百度搜索页=====================
    kw = {'wd':'花梨'}
    res_1 = requests.get('https://www.baidu.com/',params=kw,headers=headers)
    # 网页内容乱码,默认编码是ISO-8859-1,修改
    res_1.encoding = 'utf-8'
    
    # 查看返回对象类型和内容---response对象
    print(type(res_1))   # <class 'requests.models.Response'>
    print(res_1.text)  # 返回的是Unicode格式的str数据
    print(res_1.content)   # 返回的是二进制字节流(bytes)数据
    #查看完整url地址,,响应头部字符编码 和响应码
    print(res_1.url)     # https://www.baidu.com/
    print(res_1.encoding)   # utf-8
    print(res_1.status_code)  # 200
    
    1.2 基本POST请求

    对于POST请求,一般需要增加一些参数,最基本的利用data参数

    # =======2、基本post请求,有道词典翻译==============
    formdata = {
        "type":"AUTO",
        "i":"i love python",
        "doctype":"json",
        "keyfrom":"fanyi.web",
        "ue":"utf-8",
        "action":"FY_BY_ENTER",
        "typeResult":"true"
    }
    url_2 = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    res_2 = requests.post(url_2,data=formdata,headers=headers)
    print(res_2.text)
    print(res_2.json())  # json文件可以直接显示
    
    
    1.3 与urllib urllib2的区别
    • (1)输入kw等参数时
      在requests中,params可以接收字典类型的参数
    kw={"kw":"李毅"}
    requests.get(url,params=kw)  # 此时requests自动将kw自动转为url形式
    

    但是在urllib中:

    kw={"kw":"李毅"}
    kw = urllib.urlencode(kw)  #将字典形式转换为url编码格式(字符串)
    newurl = url +"?"+ kw 
    
    • (2)返回html内容时
      在得到response对象后,res可以以两种形式返回网页内容
    html = res.text  # 返回的是str格式的文本内容
    html = res.content # 返回的是bytes格式的二进制字节流,可以用来存储图片等内容
    

    而在urllib中,

    res = urllib.request.urlopen(url)  # response对象
    html = res.read()   
    print(type(html))   # <class 'bytes'>
    print(html)   # bytes格式
    html = html.decode()   # 将bytes格式转为str
    print(html)  # str格式
    

    2 XPath解析html页面

    2.0 前提知识

    关于DOM、HTML、XML的简单概念和关系参考我写的另一篇杂文DOM 及 HTML和XML

    2.1 基本流程
    从url到content.png

    相关文章

      网友评论

          本文标题:python爬虫基础测试

          本文链接:https://www.haomeiwen.com/subject/tokpwftx.html