Python爬虫笔记______day01

url 
协议://主机名:端口号/路径/?查询字符串#锚点
scheme://host:port/path/?query-string=xxx#anchor
https://baike.baidu.com/item/刘德华/114923?fr=aladdin#4

post请求----验证码,密码,上传文件 
get请求-----获取文字,图片,音频

请求头: url  body  head
请求头参数:User-Agent(浏览器)   Referer(上一页url)  Cookie(记录登录名..)

状态码:
1. 200 :请求正常,服务器正常的返回数据。
2  301 :永久重定向。比如在访问www.jigcong.cm的时候会重定向到www.jd.com 。
3. 302 :临时重定向。比如在访问一个需要登录的页面的时候,而此时没有登录,那么就会重定向到登录页面。
4. 400:请求的url在服务器上找不到。换句话说就是请求url错误。
5. 403 :服务器拒绝访问,权限不够。
6. 500 :服务器内部错误。可能是服务器出现bug了。

urllib库//python自带的基本网络请求库
  
urlopen
    from urllib import request
    resp = request.urlopen('网址')
    print(resp.read())

urlretrieve//将网页上的一个文件保存到本地
    from urllib import request
    request.urlretrieve('http://www.baidu.com','baidu.html')

urlencode //编码字符串使其满足http编码要求
    from urllib import parse
    from urllib import request
    url = 'http://www.baidu.com/s'
    params = {"wd":"刘德华"}
    qs = parse.urlencode(params)
    url = url + "?" + qs
    resp = request.urlopen(url)
    print(resp.read())

parse_qs //还原经过编码的字符串
    qs = {"name":"jinx","age":"18"}
    qs = parse.urlencode(qs)
    rest = parse.parse_qs

urlparse//解析url
    from urllib import parse

    //属性参考第2行
    url = 'http://www.baidu.com/s;hello?wd=python&username=abc#1'
    result = parse.urlparse(url)
    print('scheme:',result.scheme)// http
    print('netloc:',result.netloc)//  www.baidu.com
    print('path:',result.path)//    /s
    print('params:',result.params)//  hello
    print('query:',result.query)//  wd=python&username=abc
    print('fragment:',result.fragment)//  1

urlsplit//分割url 类似urlparse 但没有params属性
    from urllib import parse

    //属性参考第2行
    url = 'http://www.baidu.com/s?wd=python&username=abc#1'
    result = parse.urlsplit(url)
    print('scheme:',result.scheme)
    print('netloc:',result.netloc)
    print('path:',result.path)
    print('query:',result.query)
    print('fragment:',result.fragment)

request.Request 类 //处理请求头
    from urllib import request
    url = ''
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    }
    data = {
        'frist':'true',
        'pn':1,
        'kd':'python'
    }
    data = parse.urlencode(data).encode('utf-8')//urlencode把data编码,后由encode编码为utf-8
    req = request.Request(url,headers=headers,data=data,method='POST')
    resp = request.urlopen(req)
    print(resp.read())

 

posted @ 2020-03-26 21:54  亚斯娜  阅读(198)  评论(0)    收藏  举报