zoukankan      html  css  js  c++  java
  • urllib库的应用及简单爬虫的编写

    1、urllib库基础

    1.1爬虫的异常处理

      常见状态码及含义

      301 Moved Permanently:重定向到新的URL,永久性

      302 Found:重定向到临时的URL,非永久性

      304 Not Modified:请求的资源未更新

      400 Bad Request:非法请求

      401 Unauthorized:请求未经授权

      403 Forbidden:禁止访问

      404 Not Found:没有找到对应页面

      500 Internal Server Error:服务器内部出现错误

      501 Not Implemented:服务器不支持实现请求所需要的功能

      URLError与HTTPError都是异常处理的类,HTTPError是URLError的子类,HTTPError有异常状态码与异常原因,URLError没有异常状态码。不能用URLError直接代替HTTPError,如果要代替,必须要判断是否有状态码属性。

      URLError:

      1、连不上服务器

      2、远程的URL不存在

      3、本地没有网络

      4、触发了HTTPError(因为HTTPError是它的子类)

    1.2爬虫的浏览器伪装技术

      想要伪装成浏览器,必须为爬虫添加报头信息。打开浏览器进入网页,F12中network中找到user-agent及其后面的内容,然后创建opener对象,把opener添加为全局(urllib.request.install_opener(opener))。

    1.3设置代理服务器

    2、爬虫实战

    2.1将新浪新闻首页的所有新闻都爬到本地

      进入新浪新闻首页,查看网页源代码,根据每个新闻链接的相似度,构造求新闻链接的正则表达式,接着再将网页全部写入到本地。

    2.2爬取CSDN博客(http://blog.csdn.net/)首页显示的所有文章,每个文章内容单独生成一个本地网页存到本地中。

      利用浏览器伪装技术,先爬首页,通过正则表达式筛选出所有文章的url,然后通过循环把这些url下载到本地。

    3、爬取网站图片

    3.1爬取淘宝网任意搜索目录下高清图

      本次爬取淘宝的搜索关键词为“短裙”,在淘宝搜索短裙进入搜索结果页面。对该页面网址及下几页网址进行分析,找出url构造规律。对源代码中进行分析,注意找到图片的url,此时要特别注意图片必须要高清而不是略缩图,这同样需要注意图片地址。利用正则表达式对提取到的信息进行筛选,最后将得到的图片编号存储到本地。

      由于是爬取多页的信息,如果对循环不太熟悉的话,可以先爬取一页的图片,然后找出循环的规律在对规定的页数进行循环爬取图片。

    3.2对千图网任一类图片进行爬取

     

      一定要进行异常处理,不然程序很容易崩。尽量每次爬取后都输出一些文字提示,以此来了解进度。

  • 相关阅读:
    【c# 学习笔记】使用virtual和override关键字实现方法重写
    【c# 学习笔记】多态
    【c# 学习笔记】子类的初始化顺序
    mybatis入门截图二
    解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架自动封装参数的功能
    mybatis入门截图总结
    springMVC入门截图
    OA项目总结3
    修改struts2自定义标签的源代码,在原有基础上增加功能(用于OA项目权限判断,是否显示某个权限)
    ongl表达式中得到对象,调用对象方法(OA项目权限显示模块)
  • 原文地址:https://www.cnblogs.com/whliscoming/p/10743397.html
Copyright © 2011-2022 走看看