• 爬虫的基本流程


                                                           爬虫的基本流程

    1:发起请求

         通过HTTP库向目标站点发起请求,即发送一个request,请求可以包含额外的headers等信息等待服务器的响应

     2: 获取响应的内容 

         如果服务器能响应,会得到一个response,Response的内容便是所要获得的野,页面的内容,类型有

         可能有HTML,Json字符串,二进制数据(如图片视频)等类型

    3:解析内容

         得到的内容可能是HTML,可以是正则表达式,网页解析库进行解析。可能是二进制数据,可以做保存或进一步的处理

    4:保存数据

        保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定的格式的文件。

                           Request

        请求方式

        主要有GET,POST两种类型,另外还有HEAD,PUT,DELETE,OPTIONS等。

                        请求URL

         URL全称统一定位符,如一个网页文档,一张图片,一个视频都可以用URL 唯一莱确定。

                      请求头

         包含请求时头部信息,如User-Agent,Host,Cookies等信息。

                     请求体

       请求时额外携带的数据如表单交时的表单数据

                            Response

       1:  响应状态  (status code)

             有多种响应状态,如200代表成功,301跳转,404找不到页面,502服务器错误

       2: 响应头(reponse headers)

             如内容类型,内容长度,服务信息,设置Cookie等等

      3: 响应体

           主要的部分,包含了请求资源的内容,如网页HTML,图片二进制数据等。

    >>>import requests

    >>>response = requests.get('http://www.baidu.com')

    >>>print(response.text)  #打印出响应头

    >>>print(response.status_code) #打印出状态码

    >>>response = requests.get('http://www.baidu.com/img/baidu_jgylogo3.gif')   #吧百度的图片抓取

    >>>print(response.content) #输出图片的二进制格式

    >>>with open('/var/tem/1.gif ','wb') as f:

    ...f.write(response.content)

    ...f.close()

    705

    >>>

                              总结

    爬虫能抓怎么样的信息 : 

      1)网页文本,如HTML,Json格式文本

      2)图片,获取到的是二进制文件,保存为图片格式

      3)视频,同为二进制文件,保存微视频格式即可

      4)其他,只要能请求到的,都能获取。

                          解析的方式

    1)直接处理

    2)Json解析

    3)正则表达式

    4)BeautifulSoup的解析库莱解析

    5)pyQuery

    6) XPath

    >>>from selenium import webdriver

    >>>driver = webdriver.Chrome()

    >>>driver.get('http://m.weibo.com')

    >>>driver.get('http://www.zhihu.com')

    >>>print(driver.page_source)

    >>>driver.get('www.taobao.com')

    (请尊重知识,转摘需经本人许可,并请注明出处)

  • 相关阅读:
    .NET Remoting 应用实例
    EXT.NET 使用总结(3)--动态图表
    2013,2014
    TreeMap put 操作分析
    C#排序算法小结
    高性能的JavaScript--数据访问(1)
    javascript生成对象的三种方法
    Android开发中经常使用的Content-Type简介
    git diff提示filemode发生改变(old mode 100644、new mode 10075)
    UIWebView的使用
  • 原文地址:https://www.cnblogs.com/hunkhand/p/9461397.html
Copyright © 2020-2023  润新知