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
    
  • 相关阅读:
    ztree学习---将默认勾选的展开
    CentOS之RPM
    CentOS之文档的压缩与打包
    CentOS之Vim
    CentOS用户和用户组管理
    Linux CentOS更改文件的权限
    CentOS的文件属性:命令 ls -l
    CentOS命令
    Java解析excel
    easyUI的combotree的树的懒加载。
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11581218.html
Copyright © 2011-2022 走看看