以下为《Python-网络数据爬虫程序设计》的无排版文字预览,完整内容请下载
Python网络数据爬虫程序设计
Python是一种广泛使用、功能强大面向对象的程序设计语言, 能够在短时间内简单有效地实现面向对象编程, Python语言飞速发展,其简洁、易学、兼容性好等特点受到众人喜爱。使用Python编写网络爬虫有其独特的优势。
(1)语言简洁,使用方便。与其他经常使用英语关键字和一些标点符号的语言相比, 用Python书写的代码更容易阅读和理解, 语法比较简单,其设计更简洁、方便、高效,也更容易为大众用户所使用。Python易于配置的脚本特性,还使得它在处理字符方面也非常灵活。此外, Python通过强大的爬虫模块,对抓取网页本 身的接口操作和网页抓取后的处理都得心应手。
(2) 提供功能强大的爬虫框架,各种爬虫框架方便高效地下载网页,这使得Web爬虫更高效地对数据进行爬取。
(3) 丰富的网络支持库及网页解析器, Python拥有便捷的库, 包括Request、gevent、redis、jieba、lxml、Pillow、pyquery、NLTK、 BeautifulSoup等。无论是最简单的爬虫程序还是复杂的爬虫系统, 都可以利用它们轻松完成。
1网络爬虫
1.1定义
网络爬虫,主要用于收集互联网上的各种资源,它是搜索引擎的重要组成部分,是一个可以自动提取互联网上特定页面内容的程序, 一段自动抓取互联网信息的程序称为爬虫, 爬虫指的是: 向网站发起请求,获取资源后分析并提取有用数据的程序,从技术层面来说就是通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码、JSON数据、图片、视频等爬到本地, 进而提取自己需要的数据, 存放起来使用。网络爬虫架构图如下。
/
图 1 网络爬虫架构图
(1)爬虫调度端是程序的入口,主要负责爬虫程序的控制,这包括爬虫程序的启动、执行和停止,或者监视爬虫中的运行情况。
(2) 爬虫核心模块包括URL管理器、网页下载器和网页解析器3个部分。1)等待爬取的URL数据和已经爬取好的URL数据是由URL 管理器来管理, URL管理器中的数据存储方式有Python内存、关系数据库和缓存数据库组成;2)等待爬取的URL数据通过网页下载器下载其对应的网页并存储为一个字符串, 网页解析器再对传送过来的字符串进行解析,由request和urllib2实现 URL并获取网页内容; 3) 网页解析器,一方面通过正则表达式、 html.parser、BeautifulSoup、lxml 等实现解析,解析出有价值的数据, 另一方面由于每一个页面都有很多指向其他页面的网页, 这些URL被解析出来之后,可以补充进URL管理器。爬虫调度端、爬虫核心模块和存储数据这3部分就组成了一个可以将互联网中所有的网页抓取下来的网络爬虫架构。
1.2 工作流程
网络爬虫工作首先明确要爬取的网站和数据,选择合适的方法来抓取数据,再将解析下载下来的网页和价值数据持久化,保存到数据库中。网络爬虫的基本工作流程如图 2 所示。
/
图 2 网络爬虫工作流程图
2爬虫案例实施
通过 Python3.0实现任意网页数据的爬虫, 并将网页保存到本地来完成简单的网络爬虫程序。 程序将编码方式设为可输出中文的utf-8形式,首先定义带参的页面爬取函数,该函数通过 requests库的get()函数爬取所需页面内容, 并将结果进行打印输出。
#coding:utf-8#网络爬虫,尝试从网络上爬取整个网站
import urllib
import urllib.request
import re
def get_html(url): #根据给定 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 ttp:// doc.001pp.com /'
#reg_img=re.compile(r'src="(.+?\.jpg)" width')
reg=re.compile(r'href="(.+?\.htm)"')
#reg_img = re.compile(reg)#若需要编译一下,可#运行得更快
html_code=get_html(url) # 获取该网址网页详细信#息,得到的html就是网页的源代码
linklist = reg.findall(html_code)#与html进行匹配 ProcessLink(linklist) #从网页源代码中分析并下载#保存数据
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《Python-网络数据爬虫程序设计》的无排版文字预览,完整内容请下载
Python-网络数据爬虫程序设计由用户“欧巴呔”分享发布,转载请注明出处