代码改变世界

爬虫的基本流程

2018-08-11 22:35  hunkhand(高创空间)  阅读(1100)  评论(0编辑  收藏  举报

                                                       爬虫的基本流程

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')

 

 

 

 

 

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