虫虫

Python爬虫——网页数据抓取入门教学

2019-01-02  本文已影响122人  MrAsh

简介


  1. 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者):
    是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。其实通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据。
  2. 爬虫可以做什么?
    你可以用爬虫爬图片,爬取视频等等你想要爬取的数据,只要你能通过浏览器访问的数据都可以通过爬虫获取。当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户在浏览器上看到的结果
    所以用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源。

页面获取

1) 根据URL获取网页

import urllib.request as req
# 根据URL获取网页:
# http://www.hnpolice.com/
url = 'http://www.hnpolice.com/'
webpage = req.urlopen(url) # 按照类文件的方式打开网页
# 读取网页的所有数据,并转换为uft-8编码
data = webpage.read().decode('utf-8')
print(data)

2)网页数据存入文件

# 将读取的网页数据写入文件:
outfile = open("enrollnudt.txt", 'w') # 打开文件
outfile.write(data) # 将网页数据写入文件
outfile.close()

此时我们从网页中获取的数据已保存在我们指定的文件里,如下图


网页获取

从图中可以看出,网页的所有数据都存到了本地,但是我们需要的数据大部分都是文字或者数字信息,而代码对我们来说并没有用处。那么我们接下来要做的是清除没用的数据。(在这里我将获取警院新闻中的内容)

3)提取内容

  1. 分析网页,寻找所需要的内容“警院新闻”

  2. 内容范围

    • <li><a href="show.aspx?id=24797&cid=153" target="_blank"> ...</div>
  3. 如何将表格中的内容都提取出来?

    • 导入re包 (正规表达式包)
      import re
      re.findall (pattern, string [, flags] )
    • 以列表的形式返回string里匹配pattern的不重叠
      的子串
      • string会被从左到右依次扫描,返回的列表也是从左到右
        一次匹配到的
    • 如果pattern里含有组的话,那么会返回匹配到的
      组的列表


      正规表达式
  4. 匹配使用正规表达式
    '<li><a href="show.aspx?id=24797&amp;cid=153" target="_blank">(.*?)</div>'

  5. 数据清洗


至此,所需的内容已经获取到本地,爬虫基本完成。

上一篇下一篇

猜你喜欢

热点阅读