c爬虫抓取网页数据(:网络爬虫;Python;MySQL;正则表达式;)

优采云 发布时间: 2022-03-06 05:20

  c爬虫抓取网页数据(:网络爬虫;Python;MySQL;正则表达式;)

  吴永聪

  

  摘要: 近年来,随着互联网的发展,如何有效地从互联网上获取所需信息已成为众多互联网公司竞争研究的新方向。从互联网获取数据最常用的方法是网络爬虫。网络爬虫,也称为网络蜘蛛和网络机器人,是一种根据特定规则和给定 URL 自动采集互联网数据和信息的程序。文章讨论了网络爬虫实现过程中的主要问题:如何使用python模拟登录、如何使用正则表达式匹配字符串获取信息、如何使用mysql存储数据等,并实现一个使用 python 的网络爬虫系统。

  关键词:网络爬虫;Python; MySQL;常用表达

  CLC 编号:TP311.11 文号:A文章编号:1006-8228 (2019)08-94-03

  摘要:近年来,随着互联网的发展,如何有效地从互联网上获取所需的信息成为众多互联网公司争相研究的新方向,而最常见的从互联网上获取数据的手段是网络爬虫。网络爬虫也称为网络蜘蛛或网络机器人,它是根据给定的 URL 和特定规则自动采集互联网数据和信息的程序。本文讨论了网络爬虫实现中的主要问题,如如何使用Python模拟登录、如何使用正则表达式匹配字符串获取信息以及如何使用MySQL存储数据等。最后通过对Python语言的研究,实现了一个基于Python的网络爬虫程序系统。

  关键词:网络爬虫;Python; MySQL;正则表达式

  0 前言

  在网络信息和数据爆炸式增长的时代,尽管互联网信息技术飞速发展,但仍然难以从如此海量的信息数据中找到真正有用的信息。于是,谷歌、百度、雅虎等搜索引擎应运而生。搜索引擎可以根据用户输入的关键字检索互联网上的网页,为用户查找与关键字相关或收录关键字的信息。网络爬虫作为搜索引擎的重要组成部分,在信息检索过程中发挥着重要作用。因此,网络爬虫的研究对搜索引擎的发展具有重要意义。对于编写网络爬虫,python有其独特的优势。比如python中有很多爬虫框架,使得网络爬虫爬取数据的效率更高。同时,Python 是一种面向对象的解释型高级编程语言。它的语法比其他高级编程语言更简单、更容易阅读和理解。因此,使用 Python 实现网络爬虫是一个不错的选择。

  1 网络爬虫概述

  1.1 网络爬虫原理

  网络爬虫,又称网络蜘蛛、网络机器人,主要用于采集互联网上的各种资源。它是搜索引擎的重要组成部分,是一种自动提取 Internet 上特定页面内容的程序。通用搜索引擎网络爬虫工作流程[1]:①将*敏*感*词*URL放入等待URL队列;② 将等待URL从等待URL队列中取出,进行读取URL、DNS解析、网页下载等操作;③ 下载 将下载的网页放入下载的网页库;④ 将下载的网页网址放入抓取的网址队列中;爬行循环。

  爬虫的工作流程:①通过URL抓取页面代码;② 通过正则匹配获取页面的有用数据或页面上有用的URL;③ 对获取的数据进行处理或通过获取的新URL进入下一轮爬取循环。

  1.2 网络爬虫的分类

  网络爬虫大致可以分为一般网络爬虫和专注网络爬虫[2]。

  通用网络爬虫,又称全网爬虫,从一个或多个初始URL开始,获取初始页面的代码,同时从页面中提取相关URL放入队列中直到满足程序停止条件。与一般网络爬虫相比,聚焦网络爬虫的工作流程更为复杂。它需要提前通过一定的网页分析算法过滤掉一些与主题无关的URL,以保证剩余的URL在一定程度上与主题相关。放入等待抓取的 URL 队列。然后根据搜索策略,从队列中选择下一步要爬取的URL,重复上述操作,直到满足程序的停止条件。专注的网络爬虫可以爬取与主题更相关的信息。例如,为了快速获取微博中的数据,我们可以利用聚焦爬虫技术开发微博数据抓取工具[3-5]。在当今大数据时代,专注爬虫可以大海捞针,从网络数据的海洋中找到人们需要的信息,过滤掉那些“垃圾数据”(广告信息等与检索主题无关的数据) )。

  2 蟒蛇

  Python的作者是荷兰人Guido von Rossum。1982 年,Guido 获得了阿姆斯特丹大学的数学和计算硕*敏*感*词*[6]。相比现在,在他那个年代,个人电脑的频率和内存都非常低,导致电脑的配置偏低。为了让程序在 PC 上运行,所有编译器都在其核心进行了优化,因为如果不进行优化,更大的数组可能会填满内存。Guido 想要编写一种全面、易于学习、易于使用和可扩展的新语言。1989 年,Guido 开始为 Python 语言编写编译器。

  3 系统分析

  本系统是一个基于Python的网络爬虫系统,用于登录并爬取豆瓣上的相册、日记、话题、评论等一些动态数据信息。并且可以将关键字查询到的动态信息数据存入数据库,将部分数据存入数据库,存入本地txt文件,同时可以将相册动态中的图片下载到本地,还记录专辑信息,在每一页上。操作完成后,可以翻页,选择页面继续操作。因此系统应满足以下要求。

  (1)可以通过验证码验证模拟登录豆瓣。即不需要通过浏览器登录,输入用户名、密码和验证即可登录豆瓣。控制台中的代码。

  (2)登录成功后可以抓取豆瓣首页的代码。即通过登录成功后的cookie,可以访问游客无法访问的页面,抓取页面代码.

  (3)可以从页面代码中提取出需要的信息,即需要通过正则表达式匹配等方法从抓取的页面中获取有用的数据信息。

  (4)可以实现翻页和分页功能。即访问网站的动态页面时,可以通过在控制台输入具体内容进行翻页或者输入页码选择页面,然后抓取其他页面。

  (5)实现关键字查询的功能,爬取找到的数据并存入数据库表中。即在爬取页面获取数据后,在控制台输入关键字即可爬取获取需要的信息。

  (6)可以将爬取的图片的url下载到本地,图片的详细信息可以保存在本地txt[12]。也就是说,不仅要下载图片到本地,还有图片的主题信息、图片的用户、图片的具体网址等信息都保存在txt文件中。

  (7) 将日记等动态信息存储在不同的本地文件中。即针对抓取到的不同数据信息,采用不同的存储方式和存储路径。

  (8)在登录成功的情况下,可以进入个人中心,将当前用户关注的用户信息存储在数据库表中。这些信息可能包括用户id、昵称、主页url、个性化签名等

  以上是本课程对爬虫系统的一些基本要求,据此可以明确系统的功能。因为这个系统注重网络信息资源的爬取,所以在用户交互方面可能不是很美观。本系统没有编写界面,所有操作都在Eclipse控制台中进行。例如:在控制台输入用户名、密码和验证码登录,登录成功后的页面选择,页面选择后的数据爬取等。

  但是系统运行后爬取的数据可以在数据所在的本地txt文件或数据库中查看。因此,测试系统是否真的可以爬取数据,可以通过观察本地txt文件内容的变化或者数据库表中记录的变化来验证。

  该爬虫系统包括模拟登录、页面爬取、信息爬取、数据存储等主要功能。其中,页面爬取包括翻页爬取、页面选择爬取、个人页面爬取;信息爬取包括动态爬取和跟随用户爬取;数据存储包括写入文件、下载到本地和存储数据库,如图1所示。

  自动爬取 Internet 信息的程序称为爬虫。它主要由爬虫调度器、URL管理器、网页下载器和网页解析器组成。

  (1)爬虫调度器:程序的入口点,主要负责爬虫程序的控制。

  ⑵ 网址管理器:

  ① 为要爬取的集合添加新的URL;

  ②判断要添加的URL是否已经存在;

  ③ 判断是否还有待爬取的URL,将待爬取集合中的URL移动到爬取集合中。

  URL存储方式:Python内存是set()集合、关系数据库、缓存数据库。

  (3)网页下载器:根据URL获取网页内容,通过urllib2和request实现。

  ⑷网页解析器:从网页中提取有价值的数据。实现方式包括正则表达式、html.parser、BeautifulSoup、lxml。

  4。结论

  爬虫是一种自动下载网页的程序。它根据给定的爬取目标有选择地访问万维网上的网页及其相关链接,以获取所需的信息。

  本文中,爬虫旨在爬取与特定主题内容相关的网页,为面向主题的用户查询准备数据资源,实现网页数据的抓取和分析。

  参考:

  [1] 曾小虎. 基于主题的微博网络爬虫研究[D]. 武汉理工大学, 2014.

  [2] 周丽珠,林玲.爬虫技术研究综述[J]. 计算机应用,2005. 25 (9): 1965-1969

  [3] 周中华,张惠然,谢江。Python中的新浪微博数据爬虫[J]. 计算机应用,2014.34 (11): 3131-3134

  [4] 刘晶晶. 面向微博的网络爬虫研究与实现[D]. 复旦大学,2012.

  [5] 王静,朱可,王斌强。基于信息数据分析的微博研究综述[J]. 计算机应用, 2012. 32 (7): 2027-2029, 2037.@ >

  [6](挪威)Magnus Lie Hetland。思伟,曾俊伟,谭英华,译。Python基础教程[M].人民邮电出版社,2014.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线