基于Chrome浏览器插件的爬虫系统

合集下载

python爬虫神器Pyppeteer入门及使用

python爬虫神器Pyppeteer入门及使用

python爬虫神器Pyppeteer入门及使用这篇文章主要介绍了python爬虫神器Pyppeteer入门及使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下前言提起selenium想必大家都不陌生,作为一款知名的Web自动化测试框架,selenium支持多款主流浏览器,提供了功能丰富的API接口,经常被我们用作爬虫工具来使用。

但是selenium的缺点也很明显,比如速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动。

今天就给大家介绍另一款web自动化测试工具Pyppeteer,虽然支持的浏览器比较单一,但在安装配置的便利性和运行效率方面都要远胜selenium。

01.Pyppeteer简介介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。

Pyppeteer其实是Puppeteer的Python版本,下面简单介绍下Pyppeteer的两大特点,chromium浏览器和asyncio框架:1).chromiumChromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome而开启的计划,相当于Chrome的实验版,Chromium的稳定性不如Chrome但是功能更加丰富,而且更新速度很快,通常每隔数小时就有新的开发版本发布。

Pyppeteer的web自动化是基于chromium来实现的,由于chromium中某些特性的关系,Pyppetee r的安装配置非常简单,关于这一点稍后我们会详细介绍。

2).asyncioasyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持,号称是Python最有野心的库,官网上有非常详细的介绍:02.安装与使用1).极简安装使用pip install pyppeteer命令就能完成pyppeteer库的安装,至于chromium浏览器,只需要一条p yppeteer-install命令就会自动下载对应的最新版本chromium浏览器到pyppeteer的默认位置。

Chrome最强插件!Tampermonkey油猴脚本入门教程

Chrome最强插件!Tampermonkey油猴脚本入门教程

Chrome最强插件!Tampermonkey油猴脚本入门教程事前准备下载和安装的教程我就不细说了,这里可以看之前写的文章。

下载地址: https:///info?token=dhdgffkkebhmkfjojejmpbl dmpobfkfo安装方法: https:///help?token=setup如果要找更多的其他chrome扩展插件,推荐: 极简插件简介官方简介是这样说的Tampermonkey(油猴脚本)是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。

虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey(油猴脚本)将在您的用户脚本管理方面提供更多的便利。

它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能,同时Tampermonkey还有可能正常运行原本并不兼容的脚本。

那么我个人的理解是就是在指定url内,执行指定的JavaScript脚本看似是很简单的功能。

实际上可以实现无穷无尽的功能。

开始之前,请确认您是Chrome浏览器,并且已经安装过Tampermonkey扩展,如果还没有,翻到本文开头下载。

脚本安装推荐地址: https:///zh-CN/scripts官网地址: https:///scripts.php (慢) 脚本截图用【懒人专用...】来举例,点进去,点【安装此脚本】点【安装】至此安装完成很多人看到这里要问了,脚本如何使用的?就和简介里说的一样,到了指定的URL会自动触发。

具体用法在脚本下载的页面会有详情介绍。

脚本管理安装完以后想看下装过哪些?右击 chrome右上角【油猴脚本】图标,选择【管理面板】到管理面板就可以管理装过的插件,删除,更新,自定义修改都可以END入门教程就到这里了其他进阶功能您可以自己找更多的高级的脚本来实现。

基于Chrome扩展的爬虫系统设计与实现

基于Chrome扩展的爬虫系统设计与实现

基于Chrome扩展的爬虫系统设计与实现作者:魏少鹏夏小玲来源:《软件导刊》2016年第03期摘要:为了提高网页数据抓取效率,降低爬虫对系统资源的消耗,提出了一种基于Chrome扩展的爬虫系统。

利用Chrome浏览器对网页进行解析,防止被爬取对象屏蔽和网页异步加载问题,并且实现数据结构化;通过选择普通用户版扩展和服务器版扩展,既可以实现无人值守主动抓取,也可以在用户浏览网页的同时抓取信息。

整个系统前后端分离,并且采用面向接口编程,具有良好的扩展性。

通过从搜达足球网站抓取英超赛程,验证了程序的高效可行性。

关键词:爬虫系统;Chrome扩展;Netty中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2016)003-0076-05作者简介:魏少鹏(1990-),男,甘肃天水人,东华大学计算机科学与技术学院硕士研究生,研究方向为计算机软件与数据可视化;夏小玲(1966-),女,上海人,博士,东华大学计算机科学与技术学院教授,研究方向为计算机软件与数据可视化。

0 引言在大数据时代,信息呈“爆炸”式增长,为企业和个人提供了丰富的信息来源。

以新浪微博为例,截至2015年8月,有注册用户6亿,日均活跃用户6 600万,日均发微博1.2亿条[1],只通过搜索引擎搜集、获取整合数据非常困难[2-3]。

在大数据时代信息空前丰富的背景下,数据获取,即如何有效整合散落在互联网各个角落的数据,从而为用户提供更为精准的信息至关重要,解决该问题归根结底涉及到网络爬虫技术[4]。

网页爬虫几乎与网页技术一同出现,刚开始的爬虫技术主要是利用图论知识,将整个互联网看作一个连通图,采用深度优先或广度优先算法来抓取数据。

随着互联网规模的扩大,对采集速度和数据质量要求不断提高,由此出现了主题爬虫,即根据给定的主题,抓取与主题相关的网页。

当互联网规模和技术进一步发展,出现了基于分布式的爬虫,例如Google Crawler、Internet Archive Crawler等,并且还出现了针对Ajax网站的爬虫,例如Google Groups、Google Suggest等。

Python爬虫谷歌ChromeF12抓包过程原理解析

Python爬虫谷歌ChromeF12抓包过程原理解析

Python爬⾍⾕歌ChromeF12抓包过程原理解析浏览器打开⽹页的过程就是爬⾍获取数据的过程,两者是⼀样⼀样的。

浏览器渲染的⽹页是丰富多彩的数据集合,⽽爬⾍得到的是⽹页的源代码htm有时候,我们不能在⽹页的html代码⾥⾯找到想要的数据,但是浏览器打开的⽹页上⾯却有这些数据。

这就是浏览器通过ajax技术异步加载(偷偷下载)了这些数据。

⼤家禁不住要问:那么该如何看到浏览器偷偷下载的那些数据呢?答案就是⾕歌Chrome浏览器的F12快捷键,也可以通过⿏标右键菜单“检查”(Inspect)打开Chrome⾃带的开发者⼯具,开发者⼯具会出现在浏览器⽹页的左侧或者是下⾯(可调整),它的样⼦就是这样的:让我们简单了解⼀下它如何使⽤:⾕歌Chrome抓包:1. 最上⾯⼀⾏菜单左上⾓箭头⽤来点击查看⽹页的元素第⼆个⼿机、平板图标是⽤来模拟移动端显⽰⽹页Elements 查看渲染后的⽹页标签元素提醒是渲染后(包括异步加载的图⽚、数据等)的完整⽹页的html,不是最初下载的那个html。

Console 查看JavaScript的console log信息,写⽹页时⽐较有⽤Sources 显⽰⽹页源码、CSS、JavaScript代码Network 查看所有加载的请求,对爬⾍很有帮助后⾯的暂且不管。

⾕歌Chrome抓包:2. 重要区域图中红框的两个按钮⽐较有⽤,编号为2的是清空请求记录;编号3的是保持记录,这在⽹页有重定向的时候很有⽤图中绿⾊区域就是加载完整个⽹页,浏览器的全部请求记录,包括⽹址、状态、类型等。

写爬⾍时,我们就要在这⾥寻找线索,提炼⾦矿。

最下⾯编号为4的红框显⽰了加载这个⽹页,⼀共请求了181次,数量是多么地惊⼈,让⼈不禁⼼疼七浏览器来。

点击⼀条请求的⽹址,右侧就会出现新的窗⼝显⽰该条请求的相信信息:图中左边红框就是点击的请求⽹址;绿框就是详情窗⼝。

详情窗⼝包括,Headers(请求头)、Preview(预览响应)、Response(服务器响应内容)和Timing(耗时)。

python+selenium+chromedriver实现爬虫示例代码

python+selenium+chromedriver实现爬虫示例代码

python+selenium+chromedriver实现爬⾍⽰例代码下载好所需程序1.Selenium简介Selenium是⼀个⽤于Web应⽤程序测试的⼯具,直接运⾏在浏览器中,就像真正的⽤户在操作⼀样。

2.Selenium安装⽅法⼀:在Windows命令⾏(cmd)输⼊pip install selenium即可⾃动安装,安装完成后,输⼊pip show selenium可查看当前的版本⽅法⼆:直接下载selenium包:Pychome安装selenium如果出现⽆法安装,参考以下博客3.禁⽌⾕歌浏览器⾃动更新搜索本地:管理⼯具-服务-Google⾃动更新服务-选择禁⽌安装浏览器对应的驱动driver我这⾥⽤的是⾕歌,选择对应的驱动版本驱动的下载地址如下:win32、win64的都下载win32.zip 的将下载的chromedriver 进⾏解压,并将⽂件复制或移动到,浏览器快捷⽅式所在⽬录。

环境变量配置1.Python 环境配置2.chromedriver 环境配置3.pychrome 的python 环境指向⾃⼰电脑安装好的python注意:将下载好的chromewebdriver.exe 驱动放在Python 的安装路径下的Scripts ⾥⾯,同时将Scripts 路径添加到PATH 中,这样每次运⾏python 的时候就会⾃动加载驱动代码实现#已经准备环境:webdriver:Google已经安装好;环境变量配置好;pip install selenium;#selenium是⼀个包,包有很多对象,对象有属性,⽅法。

from selenium import webdriverbrowser=webdriver.Chrome()#打开浏览器url="https:///zt2020/page/feiyan.htm#/global?nojump=1"#获取数据的地址#请求浏览器内容:请求⽅式:get,post,tokenbrowser.get(url)#css选择器,id选择器:#开头,class选择器:.开头,标签选择器:p,span,div。

pychrome用法

pychrome用法

pychrome用法1. 什么是pychrome1.1 pychrome简介pychrome是一个用于与Chrome浏览器交互的Python库。

它提供了一个简洁而强大的API,可以用于自动化浏览器操作,例如模拟用户行为、执行JavaScript代码和捕获网络请求等。

通过使用pychrome,我们可以轻松地编写基于Chrome浏览器的自动化脚本,以满足各种网页抓取、自动化测试和数据分析等需求。

1.2 安装pychrome在使用pychrome之前,我们需要确保已经安装了相关的软件和库:•安装Chrome浏览器:pychrome是基于Chrome的DevTools协议进行开发的,因此需要先安装Chrome浏览器。

•安装ChromeDriver:ChromeDriver是Chrome浏览器的一个开源项目,用于连接Chrome和调试协议。

我们可以从ChromeDriver的官方网站()下载对应版本的ChromeDriver,并将其添加到系统的PATH环境变量中。

•安装pychrome库:可以使用pip命令来安装pychrome库。

在命令行中执行以下命令:pip install pychrome2. pychrome的基本用法2.1 启动Chrome浏览器在使用pychrome之前,我们需要启动一个Chrome浏览器实例作为调试目标。

可以通过pychrome库提供的Launcher类来实现。

from pychrome import Launcher# 创建一个Launcher实例launcher = Launcher()# 启动Chrome浏览器browser = unch()# 关闭Launcher实例launcher.close()2.2 创建一个Tab在Chrome浏览器中,每个网页通常是以一个Tab的形式展示的。

我们可以通过调用browser.new_tab()方法来创建一个新的Tab。

tab = browser.new_tab()2.3 Tab的基本操作通过Tab对象,我们可以对Tab进行一系列的操作,例如加载网页、执行JavaScript代码和捕获网络请求等。

爬虫之chrome浏览器的使用方法

爬虫之chrome浏览器的使用方法

爬⾍之chrome浏览器的使⽤⽅法
chrome浏览器使⽤⽅法介绍
1. 新建隐⾝窗⼝
1.1 为什么需要新建隐⾝窗⼝
在打开隐⾝窗⼝的时候,第⼀次请求某个⽹站是没有携带cookie的,和代码请求⼀个⽹站⼀样,不携带cookie。

这样就能够尽可能的理解代码请求某个⽹站的结果;除⾮数据是通过js加载出来的,不然爬⾍请求到的数据和浏览器请求的数据⼤部分时候都是相同的
2. chrome中network的更多功能
2.1 Perserve log
默认情况下,页⾯发⽣跳转之后,之前的请求url地址等信息都会消失,勾选perserve log后之前的请求都会被保留
2.2 filter过滤
在url地址很多的时候,可以在filter中输⼊部分url地址,对所有的url地址起到⼀定的过滤效果,具体位置在上⾯第⼆幅图中的2的位置
2.3 观察特定种类的请求
在上⾯第⼆幅图中的3的位置,有很多选项,默认是选择的all,即会观察到所有种类的请求
很多时候处于⾃⼰的⽬的可以选择all右边的其他选项,⽐如常见的选项:
XHR:⼤部分情况表⽰ajax请求
JS:js请求
CSS:css请求
但是很多时候我们并不能保证我们需要的请求是什么类型,特别是我们不清楚⼀个请求是否为ajax请求的时候,直接选择all,从前往后观察即可,其中js,css,图⽚等不去观察即可
不要被浏览器中的⼀堆请求吓到了,这些请求中除了js,css,图⽚的请求外,其他的请求并没有多少个
2.4 其他⽅法
1.search all file
2.确定js的位置
3.js中添加断点。

基于chrome.webRequest打造chrome-fiddler(一)

基于chrome.webRequest打造chrome-fiddler(一)

基于chrome.webRequest打造chrome-fiddler(⼀)##适应读者1. 常通过fiddler来调试并且⼜喜欢使⽤chrome浏览器的同学2. 对开发chrome插件感兴趣的同学3. 对fiddler了解的同学(本⽂不会讲关于fiddler的基础知识)##fiddler的问题1. 其实fiddler可以满⾜⼤部分功能,⽽且可以基于fiddler开发插件,但我们遇到了⼀个问题,即开启fiddler后,通过chrome来刷新页⾯⾮常慢,这也致使了很多热爱chrome的开发⼈员放弃了使⽤fiddler,但fiddler给我们带来的好处是可以在本地开发,直接看线上效果。

2. 很多同学是⽤ubuntu或者mac的系统,在ubuntu似乎还没有fiddler的可替代品,听说过有个wireshark ,不过⽤起来⽐较⿇烦。

当然也有办法,即开⼀个虚拟机,装个win,⾥⾯装个fiddler,再开⼀个apache,但这样也有些折腾。

##针对问题分析针对上⾯的问题,其实只要解决了第⼀个问题,即解决了在chrome的问题,则解决了第⼆个问题,因为其他系统也都有chrome,所以我们可以围绕chrome来做⽂章,我还专门向fiddler的作者Erik邮件过,但可能是英⽂太差的原因,没有给予理会,fiddler在ie系列和firefox系列都没问题,主要是chrome.所以这个问题⼀直很困扰着我,当恰好我有个同事当时做了个chrome插件,当时主要是统计的同学只想看针对统计的请求url,⽽可以将⼀些⽆关的url给过滤掉,⽽chrome下的开发者⼯具的 net列表的过滤功能⼜不给⼒,所以他⽤到了chrome提供的webRequest,其实是监听了请求,并且通过requestHeader的参数进⾏⼀些过滤,从⽽定制了⾃⼰想看的请求。

既然webRequest可以监听,那么它是否可以像fiddler-script⼀样,可以更改request的url呢?所以我可以开发⼀个插件来尝试下,如果可以,⾄少是可以替代fiddler的映射功能,即抓到⼀个地址,将这个地址映射到⾃⼰想要的地址。

用C#+Selenium+ChromeDriver爬取网页(模拟真实的用户浏览行为)

用C#+Selenium+ChromeDriver爬取网页(模拟真实的用户浏览行为)

⽤C#+Selenium+ChromeDriver爬取⽹页(模拟真实的⽤户浏览⾏为)以下⽂章来源于公众号:DotNetCore实战1.背景Selenium是⼀个⽤于Web应⽤程序测试的⼯具。

Selenium测试直接运⾏在浏览器中,就像真正的⽤户在操作⼀样。

⽽对于爬⾍来说,使⽤Selenium操控浏览器来爬取⽹上的数据那么肯定是爬⾍中的杀⼿武器。

这⾥,我将介绍selenium + ⾕歌浏览器的⼀般使⽤。

2.需求在平常的爬⾍开发中,有时候⽹页是⼀堆js堆起来的代码,涉及很多异步计算,如果是普通的http 控制台请求,那么得到的源⽂件是⼀堆js ,需要⾃⼰在去组装数据,很费⼒;但是采⽤Selenium+ChromeDriver可以达到所见即所得的完美效果。

3.实现⽅式项⽬结构:为了⽅便使⽤,⽤的winform程序,附nuget包以下是form1.cs的代码,这⾥就只放关键⽅法代码了。

需要安装最新的chrome浏览器+代码中使⽤的chromedriver是v2.9.248315#region 异常退出chromedriver[DllImport("user32.dll", EntryPoint = "FindWindow")]private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll", EntryPoint = "SendMessage")]public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);public const int SW_HIDE = 0;public const int SW_SHOW = 5;[DllImport("user32.dll", EntryPoint = "ShowWindow")]public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);/// <summary>/// 获取窗⼝句柄/// </summary>/// <returns></returns>public IntPtr GetWindowHandle(){string name = (Environment.CurrentDirectory + "\\chromedriver.exe");IntPtr hwd = FindWindow(null, name);return hwd;}/// <summary>/// 关闭chromedriver窗⼝/// </summary>public void CloseWindow(){try{IntPtr hwd = GetWindowHandle();SendMessage(hwd, 0x10, 0, 0);}catch { }}/// <summary>/// 退出chromedriver/// </summary>/// <param name="driver"></param>public void CloseChromeDriver(IWebDriver driver){try{driver.Quit();driver.Dispose();}catch { }CloseWindow();}#endregion 异常退出chromedriver效果:说⼀下思路:1.跳转到指定的⽹页driver.Navigate().GoToUrl2.确定数据源,从driver.PageSource读取数据3.对html数据进⾏解析到此这篇关于⽤C#+Selenium+ChromeDriver爬取⽹页(模拟真实的⽤户浏览⾏为)的⽂章就介绍到这了,更多相关⽤C#+Selenium+ChromeDriver 爬取⽹页内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

centos7中配置python爬虫selenium+chromium+chromedri。。。

centos7中配置python爬虫selenium+chromium+chromedri。。。

centos7中配置python爬⾍selenium+chromium+chromedri。

今天为了爬取某异步加载⽹站的数据,开始⾃学了selenium,不得不说selenium还是很⽅便的⼯具,适合⽆脑爬取异步加载的⽹站。

⾸先我在⾃⼰的windows电脑下配置了selenium和chromedriver的chrome浏览器内核,正常调试好程序后准备部署到centos7服务器上,但是遇到了很多问题,不停报错,在踩了很多雷以后终于可以完美部署selenium+chromium+chromedriver环境顺利爬⾍了!接下来我就详细介绍下正确的配置⽅式1. 安装selenium:这⼀步⽐较简单,直接pip安装就⾏:pip install selenium2. 安装chromium:由于⾕歌chrome并不⽀持linux,也就更不⽀持centos了,所以需要安装chromium,不过不⽤担⼼,chromium也是⾕歌的开源项⽬,与chrome并没有太⼤的区别yum install chromium这⼀步也没什么问题,需要注意⼀下chromium安装的版本,因为要与下⼀步需要安装的chromedriver版本相适配,⼆者版本不同都会报错,这⾥我也是踩雷了,chromium默认安装的最新版为“79.0.3945.130-1.el7”,但是chromedriver已经更新到了81.0,第⼀次安装的时候我选择了最⾼版本的chromedriver,但是chromium还是79.0版本,执⾏python脚本的时候就报错版本不适配,所以我重新安装了对应版本的chromedriver。

如何查看安装的chromium版本?yum就可以看到yum list installed3. 安装chromedriver:这⾥我们从taobao镜像站点安装:# 下载对应版本的chromedriverwget https:///mirrors/chromedriver/79.0.3945.16/chromedriver_linux64.zip# 解压unzip chromedriver_linux64.zip# 把chromedriver移动到系统⽬录mv chromedriver /usr/bin⽅法2:直接yum安装,这样其实更省事⼉⼀点yum chromedriver安装完成后确认⼀下版本与chromium保持⼀致:到这⼀步已经配置好selenium+chromium+chromedriver的环境了,接下来我们写⼀个最简单的python脚本试⼀下!from selenium import webdriverfrom selenium.webdriver.chrome.options import Options # 导⼊浏览器内核设置,主要是为了设置⽆头(headless)模式url = ''chrome_options = Options()chrome_options.add_argument('--headless') # 设置Chrome为⽆头模式driver = webdriver.Chrome(options=chrome_options)driver.get(url)driver.close()诶,报错了:The process started from chrome location /usr/lib64/chromium-browser/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed在脚本上加上两句话:option.add_argument('no-sandbox')option.add_argument('disable-dev-shm-usage')完美解决了!。

一款你必须会用的Chrome爬虫插件

一款你必须会用的Chrome爬虫插件

一款你必须会用的Chrome爬虫插件作者:忆蓉之心;来源:Java面试那些事儿最近,有同学问我。

我不想写代码,如何快速爬取几个数据量不太大的网页?这个需求,估计大家很多时候都会遇到,比如,你想爬取秒杀页面的商品信息进行对比;你想爬取国家统计局官网发布的你感兴趣的数据;等等。

既然说到这里,我就简单的介绍一下网络爬虫。

网络爬虫的主要目的是爬取互联网上的网页。

你可以把互联网中的每一个网页想象成一个点,那么整个互联网将是彼此连通的。

是不是很像我们大学学过的图论?如果从任何一个网页出发,在时间资源允许的情况下,使用广度优先算法(BFS)或者深度优先算法(DFS)是可以爬完整个互联网的。

对这两种算法不太熟悉的同学可以去背书了。

下面以比较流行的 Scrapy 架构图为例,流线为数据流向。

打开今日头条,查看更多图片看了这幅图,是不是对一般的爬虫有了大致的了解了。

专业的网络爬虫(比如百度/谷歌的爬虫)为了节约资源和时间,因此,设计是相当复杂的。

这些爬虫一般是基于分布式集群构建的,有些机子负责调度,有些机子负责下载,有些机子专门基于网页进行分析,等等。

并非简单的用 BFS/DFS 就能解决的,比如,我们以调度器为例,它就需要来管理下载优先级,当引擎发送过来Request 请求,就需要按照优先级进行整理排列,入队,当引擎需要时,交还给引擎。

虽然关于各种语言的爬虫框架很多,要是用这些框架来爬这点数据,确实有点大材小用了,而且还得要编码调试,各种麻烦我发现Chrome 商店里面有一款爬虫插件,刚好解决这个痛点,它的名字叫做 Web Scraper,目前有 22w 的用户下载。

官方网址:这个爬虫操作特别简单,照着官方文档,几分钟就学会了。

我这里就说几个关键点吧。

1、启动一般初次使用,不知道怎么打开它,用快捷键ctrl+shift+i 打开开发者工具。

sitemaps:你所有的爬虫。

create new sitemap:创建一个新爬虫的起始地址。

chromium 爬虫特征

chromium 爬虫特征

chromium 爬虫特征
Chromium是一个开源的浏览器引擎,被广泛应用于各种浏览器中,包括Google Chrome、Microsoft Edge等。

由于Chromium的开源性质,它也成为了爬虫开发中的一种常见选择。

Chromium爬虫的主要特征包括:
1. 真实的浏览器环境:Chromium爬虫使用的是真实的浏览器环境,这意味着它可以模拟真实的用户行为,如加载网页、执行JavaScript等。

这使得Chromium爬虫能够抓取到更多、更准确的数据。

2. 支持多种浏览器:由于Chromium是一个浏览器引擎,它可以被用于开发各种不同的浏览器。

因此,使用Chromium爬虫可以模拟多种不同的浏览器环境,从而更好地适应不同的网站结构和反爬虫策略。

3. 高度可定制:Chromium爬虫可以根据需要进行高度定制,包括修改请求头、代理设置、Cookie等。

这使得它能够适应各种不同的网站访问需求和反爬虫策略。

4. 支持自动填写表单:Chromium爬虫可以模拟用户在网页上填写表单的过程,支持自动填写表单并提交。

这大大提高了爬虫的效率和自动化程度。

5. 高效的内存管理和资源利用:Chromium爬虫使用高效的内存管理和资源利用技术,可以在处理大量数据时保持较低的内存占用和资源消耗。

6. 易于调试和开发:Chromium爬虫可以使用开发者工具进行调试和开发,方便开发者进行问题排查和功能开发。

总之,Chromium爬虫具有真实的浏览器环境、高度可定制、支持自动填
写表单、高效的内存管理和资源利用以及易于调试和开发等特征。

这些特点使得它成为了一种强大而灵活的爬虫技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学校代码:10255学号:2131569 基于Chrome浏览器插件的爬虫系统WEB CRAWLER SYSTEM BASED ON CHROMEEXTENSION学科专业:软件工程作者:魏少鹏指导教师:夏小玲答辩日期:2016年1月2015年12月东华大学学位论文原创性声明本人郑重声明:我恪守学术道德,崇尚严谨学风。

所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。

除文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品及成果的内容。

论文为本人亲自撰写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。

学位论文作者签名:日期:年月日东华大学学位论文版权使用授权书学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。

本人授权东华大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

保密□,在年解密后适用本版权书。

本学位论文属于不保密□。

学位论文作者签名:指导教师签名:日期:年月日日期:年月日基于Chrome浏览器插件的爬虫系统摘要随着大数据时代的来临,网络信息以“爆炸”的方式增长,以新浪微博为例,其日均微博更新多达1.2亿条,但在信息空前丰富的前提下,用户获取自己需要数据的难度也日趋增加。

传统搜索引擎如百度、Google等提供的零散结果已经不能满足用户的需求,人们不论在专业数据分析还是在日常生活方面更需要的是经过有效整合的数据,整合互联网数据要使用网络爬虫技术。

然而目前常用的网络爬虫系统开发难度大,稳定性差并且使用不友好,已经不能满足当今用户的需求,因此研究设计一种开发扩展简单,稳定性高,适用范围广以及使用友好的网络爬虫系统具有非常重要的价值。

本文先研究了国内外现有网络爬虫技术、网络爬虫系统和反爬虫策略的现状,分析了现有网络爬虫系统实现过程复杂、稳定性差和使用不友好的原因,并且基于此提出了基于Chrome扩展的网络爬虫系统。

其次,为了满足不同的需求和发挥互联网的优势,提出了在基于Chrome扩展的网络爬虫系统中实现两种信息抓取模块,分别是个人版信息抓取模块和服务器版信息抓取模块。

最后,为了支持个人版信息抓取模块对中央服务器模块的高并发性需求,提出了基于Netty框架实现的中央服务器模块和采用主从库配置的数据库模块,并且为了在有更多新需求的情况下中央服务器模块能够更好的进行扩展,本文采用了面向接口编程并且引入了Spring框架来管理中央服务器模块的类之间的依赖。

本文设计和实现的网络爬虫系统,不仅开发过程容易,扩展方便,支持网页类型多——包括普通静态网页、异步加载网页和动态生成信息,而且个人版信息抓取模块还可以最大化的发挥互联网的优势,利用每个网络爬虫用户来抓取信息。

系统测试结果表明预期结果得以实现,并且在使用友好度、高可用性方面有很大的提高。

关键字:网络爬虫Chrome扩展JavaScript Netty 主从库WEB CRAWLER SYSTEM BASED ON CHROMEEXTENSIONABSTRACTWith the advent of the era of big data, network information has been growing in a explosive speed, for instance, the daily blogs posted on Sina Weibo reach to 120 million. However, the difficulty for users to get the data they need has been increasing in the context of unprecedentedly rich information. Scattered result presented by traditional search engine, like Baidu and Google, has no longer fulfilled user s’requirements, what they need more is the data of valid integration in professional data analysis and daily life. Crawler is one of technologies used in the process of internet data integration. However, common crawler technology used currently has difficult exploitation and poor stability, and is not user friendly, which can not meet the needs of user. Therefore, it is valuable to develop a new crawler system with the feature of simple expanding development, high stability, wide application and user friendly.This article firstly analyzed current crawler system, crawler technology and anti-crawler strategies used both in China and abroad, as well as the reason leading to the complex implementation process of web crawler system, poor stability and user unfriendly, as a result, a new crawler system based on Chrome was created. Furthermore, in order to fulfill different user needs and give play to advantages of internet, two kinds of information capture modules in web crawler system based on Chrome expansion were proposed, which were personal version information capture module extension and server version information capture module extension. Finally, in order to support the high concurrency requirements of central server module for personal version information capture module, central server module based on Netty framework and database module using Master-slave Database configuration, and in order to make central server module extend better as more requests are made, this article used program to interface and introduced spring framework to manage the dependencies between the central server module and category.The crawler system designed and developed in the article has the features that easy development, extended to facilitate and supporting many webpage types, including static webpage, asynchronous loading webpage and dynamic webpage, and personal version information capture module can also maximize the advantage of internet to grab information using each web crawler user. As the result presented in the test environment, all the features presented above has been successfullyimplemented and it performs much better than other current crawler system in the field of user friendly and capacity.KEY WORDS:Crawler, Chrome Extention, JavaScript, Netty, Master-slave Database目录第一章绪论 (1)1.1研究背景与意义 (1)1.2国内外研究现状 (3)1.3研究内容及研究目标 (4)1.4本文的组织结构 (5)第二章相关技术介绍 (7)2.1网络爬虫技术与反爬虫策略 (7)2.1.1 网络爬虫技术 (7)2.1.2 反爬虫策略 (9)2.2Chrome浏览器介绍 (11)2.3Chrome扩展技术介绍 (12)2.3.1 content_scripts (13)2.3.2 background (15)2.3.3 permissions (15)2.3.4 Chrome扩展页面间的通信 (16)2.3.5 Chrome扩展举例 (17)2.4Netty框架与Spring框架 (18)2.4.1 Netty框架 (18)2.4.2 Spring (19)2.5本章总结 (20)第三章系统概要设计 (21)3.1系统需求分析 (21)3.1.1 需求分析 (21)3.1.2 系统目标 (23)3.2系统概要设计 (23)3.2.1 信息抓取模块 (24)3.2.2 中央服务器模块 (25)3.2.3 主从数据库模块 (26)3.3本章小结 (27)第四章系统详细设计 (28)4.1模块间交互设计 (28)4.2信息抓取模块 (28)4.2.1 与中央服务器模块交互功能 (29)4.2.2 页面信息提取 (30)4.2.3 测试功能 (30)4.2.4 待抓取页面管理 (30)4.2.5 浏览器Tab管理 (31)4.2.6 日志监控 (31)4.2.7 信息抓取模块包设计 (32)4.3中央服务器模块 (32)4.3.1 JDBC封装 (32)4.3.2 Exception封装 (33)4.3.3 参数验证 (33)4.3.4 图片相关功能 (33)3.3.5 数据去重 (34)3.3.5 业务逻辑 (34)4.3.5 测试功能 (34)4.4本章小结 (35)第五章系统实现 (36)5.1系统实现概述 (36)5.2信息抓取模块 (37)5.2.1 JQuery包 (37)5.2.2 基础文件 (38)5.2.3 后台运行文件 (38)5.2.4 信息提取脚本 (38)5.2.5 manifest.json配置 (40)5.2.6 测试 (41)5.3中央服务器模块 (42)5.3.1 共用功能 (42)5.3.2 业务逻辑 (42)5.3.3 测试 (43)5.4主从库模块 (44)5.4.1 主库授予从库复制权限 (44)5.4.2 修改主库的配置文件 (44)5.4.3 修改从库的配置文件 (45)5.4.4 从库启动复制 (45)5.4.5 测试 (45)5.5本章小结 (46)第六章系统验证 (47)6.1实验准备 (47)6.1.1 实验环境 (47)6.1.2 预期目标 (47)6.2信息抓取模块部署 (47)6.3结果验证 (48)6.4系统优缺点 (50)6.5本章小结 (51)第七章总结与展望 (53)7.1总结 (53)7.2展望 (54)参考文献55第一章绪论1.1研究背景与意义来自中国互联网络信息中心的《第36次中国互联网络发展状况统计报告》[1]19中关于中国网民规模和互联网普及率的数据显示,中国整体网民规模增速持续放缓,如图1-1 所示,但是中国网民占总人数的比例接近50%,人们对互联网的依赖明显增加。

相关文档
最新文档