zoukankan      html  css  js  c++  java
  • python学习21--爬虫相关

    网络爬虫1--网络的访问
      网络模块urllib;
        包含四个模块:request,error,
        解码:str=htmlstr.decode("utf-8");
        response(对象)=urllib.request.urlopen(url[,....])
          或者是:req()对象=urllib.request.Request(urlstring);
              response(对象)=urllib.request.urlopen(req).
          即:urlopen的url参数可以为一个字符串或者一个request独像。当为字符串时系统帮助做下面的两句话。
        str(字符串,二进制型)=response.read();
        对于response:
          .geurl(),返回访问的连接地址。
          .info().返回HTTPMESSAGE.
          .getcode().
    网络爬虫2--图片下载
      需要明确的是,图片等多媒体文件也是由二进制组成。
      图片下载,需要先open一个文件,然后写入;
      例如:with open('cat.jpg','wb') as f:
          f.write(response);

    网络爬虫3--在线翻译
      1.url中data参数。
      data=urllib.parse.urlencode(data).encode('utf-8').此utf-8的确定根据具体要访问的网站的源码编码格式进行设置
        python默认的编码格式为unicode
      response=urllib.request.urlopen(url.data)
      html=reponse.read().decode('utf-8').解码
      //json数据格式解析
      jsondict(字典格式)=json.loads(html)
      根据jsondict具体形式获得想要的数据。对于字典中套字典情况,可以用多重[][][]获取。
    网络爬虫4--隐藏
      1.模拟正常浏览器访问
        urlopen中的url实际上是一个Request对象。所以对于自定义head,的两种方式:
        其中需注意的是;heads是一个字典。
        方法一:
          head={}
          head['User-Agent']="string".string复制浏览器显示的。
          req=urllib.request.Request(url,data,head)
        方法二:
          req=urllib.request.Request(url,data)
          req.add_head('User-Agent','string').
      2.提交频率
        方法一:延迟提交时间
          import time
          time.sleep(5).五秒钟
        方法二:使用代理
          1.创建一个代理字典:
            字典格式:{‘类型’:‘代理ip:端口号’}
            proxy=urllib.request.ProxyHandler({})
          2.定制,创建一个opener
            opener=urllib.request.build_opener(proxy)
          3.安装opener
            urllib.request.install_open(opener)
          4.调用opener
            opener.open(url)
        3.隐藏总结:
          opener.addheaders=[{'User-Agent','str'}]
          其余同上
    4.对于单个线程来说,每次只能访问一个连接,所以直接将ip:port做成一个列表,然后随机取出。
        random.choice(列表)

  • 相关阅读:
    UE4使用第三方库读写xml文件
    ROS机器人程序设计(原书第2版)补充资料 教学大纲
    Unity UGUI图文混排(七) -- 下划线
    奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示
    Java复习之泛型
    Java复习之多线程
    Java复习之包及访问控制权限
    Java复习之异常
    Java复习之面向对象高级
    Java复习之面向对象基础
  • 原文地址:https://www.cnblogs.com/zjh225901/p/6347608.html
Copyright © 2011-2022 走看看