python爬虫之获取新浪新闻信息

        一:前言

windows平台:
        1):谷歌的chrome浏览器;python3.6的软件安装包,需要导入的库有:
[python]  view plain   copy
  1. pip install requests  
  2. pip install BeautifulSoup4  
        2)直接用集成好的软件Anaconda
linux平台下:
       1)火狐浏览器;Ubuntu16.04已经自动安装了python2.7和python3.6;故只需导入库就可以
[python]  view plain   copy
  1. pip install requests  
  2. pip install BeautifulSoup4  

       二:模块化击破

        如今我们上网,网页上充满了各种各样的数据,我们怎样才能根据自己的需求,快速又准确的找到自己想要的数据呢?爬虫就产生了。网络爬虫的任务就是在浏览器中将网页上非结构化的网页数据转化为结构化的信息数据,从而快速找到满足我们的要求数据信息。
       非结构话的数据:没有固定的数据格式(ps我们上网浏览的网页就是最常见的非结构话数据);必须透过ETL(Extract,Transformation,Loading)工具将数据转换为结构化数据才能取用。
       网络爬虫的任务就是让这些原始数据经过爬虫工具整理后成为自己想要的结构化数据。即爬虫是从网页上对数据(这里的数据是原始数据 Raw Data)抽取,转换(TEL脚本),存储(结构化的数据Tidy Data)的过程。
      网络爬虫的架构描述为首先打开浏览器输入自己想处理的数据信息网页的URL,浏览器会发出Request请求,去服务器中查找相应的request请求,并返回给浏览器对应的request请求,把原始的数据显示在浏览器上,然后爬虫对这些原始的数据进行资料剖析(Data Parser),将我们想要的信息整理成结构化数据,存储在数据中心(Data Center)。
      在我们进行爬虫之前,首先要对网页上的数据显示有一个清晰的认识,所以我们要借助浏览器的开发者工具去查看这些浏览器给我们解析过的网页,我们利用开发者工具查看源码会找到对应网页资源的规律,我们就是利用这个规律去把这些非结构化的数据抽取出来转化为结构化的数据。
       在这里我们要利用BeautifulSoup这个库,它最主要最给力的功能就是从网页上抓取数据。官方解释如下:

Beautiful Soup提供一些简单的、Python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度

       观察HTTP请求与返回内容(我们以爬取 新浪网新闻的国内新闻为例):
      1):获取网页源码

      1:我们鼠标点击右键,选择查看
      2:选择Network页标签
      3:选择doc
      4:选择china/

       5:我们点击Headers就会看到这个网页的头信息。现在我们利用Request来获取这个网页:
[python]  view plain   copy
  1. #coding:utf-8  
  2. #Requests:网络资源获取的组件  
  3. #改善了Urllib2的缺点,让使用者以最简单的方式获取网络资源  
  4. #可以使用REST操作(POST, PUT, GET, DELETE)存取网络资源  
  5. import requests  
  6.   
  7. newsUrl = 'http://news.sina.com.cn/china/'  
  8.   
  9. #获取网页信息,返回在res中  
  10. res = requests.get(newsUrl)  
  11.   
  12. #设置获取网页内容的编码  
  13. res.encoding = 'utf-8'  
  14. #输出网页源码  
  15. print(res.text)  
       2):对网页源码进行信息搜索提取。
      首先我们先来一个简单的小例子来做实验:
       1:编写html网页,并放入BeautifulSoup中
[python]  view plain   copy
  1. #coding:utf-8  
  2. from bs4 import BeautifulSoup  
  3. html_sample = '\  
  4. <html>\  
  5.     <body>\  
  6.         <h1 id = "title">hello,Reptile</h1>\  
  7.         <a href="#" class="link">This is a link1</a>\  
  8.         <a href="#link2" class="link">This is a link2</a>\  
  9.     <body>\  
  10. </html>'  
  11.   
  12. #将网页存放在BeautifulSoup中  
  13. soup = BeautifulSoup(html_sample, 'html.parser')  
  14.   
  15. #获取本文信息  
  16. print(soup.text)  
       2:找出含有特定标签的HTML元素
           使用select找出含有h1标签的元素
[python] 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值