zoukankan      html  css  js  c++  java
  • 就这样被你征服网络爬虫

    requests库中

    apparent_encoding比encoding更加准确,因为encoding只分析了header中的代码,而apparent_encoding是真的在分析内容的

    如果用户想要获取网站的信息则使用GET HEAD

    如果想要修改或者给网站增加信息则使用 PUT POST PATCH DELETE

    patch和put的区别

    需求:用户改变了username其他不变

    采用patch,仅向url提交username的局部更新请求

    采用Put,必须将所有20个字段一并再次传给服务器,未提及的字段会被删除

    patch的好处是节省网络宽带

    request.request(method,url,**kwargs)

    method:请求方式

    r=requests.request('GET',url,**kwargs)

    r=requests.request('HEAD',url,**kwargs)

    r=requests.request('POST',url,**kwargs)

    r=requests.request('PUT',url,**kwargs)

    r=requests.request('PATCH',url,**kwargs)

    r=requests.request('delete',url,**kwargs)

    r=requests.request('OPTIONS',url,**kwargs)

    七种

    Robots协议

    Robots Exclusion Standard 网络爬虫排除标准

    用于告知网络爬虫那些页面可以抓取,哪些不行。

    改头换面的方式:

    import requests
    url="http://www.amazon.cn/gp/product/B01M8L5Z3Y"
    try:
      kv=('user-agent':'Mozilla/5.0')
      r=requests.get(url,headers=kv)
      r.status_code
      r.request.headers
      print(r.text[1000:2000])
    except:
      print("爬取失败")
    主要是try缩进里面的那些代码
    
    import requests
    keyword=""#这里输入关键字
    try:
        kv={'wd':keyword}
        r=requests.get("http://www.baidu.com/s",params=kv)
        print(r.request.url)
        r.raise_for_status()
        print(len(r.text))
    except:
        print("爬取失败")
        #爬取百度
                         			
    import requests
    keyword=""#这里输入关键字
    try:
        kv={'q':keyword}
        r=requests.get("http://www.so.com/s",params=kv)
        print(r.request.url)
        r.raise_for_status()
        print(len(r.text))
    except:
        print("爬取失败")
        #爬取360
    
  • 相关阅读:
    NSCalendar
    保护连接字符串
    System.Runtime.InteropServices.COMException: 拒绝访问.
    Windows 7 初体验
    Sql语句收藏
    因为WMI配置,无法执行Sql Server 系统配置检查器的解决办法
    url带中文参数显示乱码的问题
    想建立一个好的团队,有意者加我
    庆祝一下,早上的帖子上了24小时排行第三
    C/S结构和b/s结构的比较
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11581218.html
Copyright © 2011-2022 走看看