网页抓取

利用 HtmlAgilityPack 抓取网页

北城以北 提交于 2020-01-02 13:17:31
之前都是用正则抓取页面,本人正则不咋地,有些东西用抓取来很费劲,呵呵 在网上看到别人推荐一个 HtmlAgilityPack 的东西,网上找了资料,自己写了个抓取网页的例子,框架用的ASP.NET MVC 4,先看看效果 演示地址: http://www.5imvc.com/Html/cnblogs 首先下载插件,NuGet里就有 创建 model    /// <summary> /// 页面抓取结果 /// </summary> public class Result { /// <summary> /// 链接 /// </summary> public string url { get; set; } /// <summary> /// 标题 /// </summary> public string title { get; set; } /// <summary> /// 头像地址 /// </summary> public string img { get; set; } /// <summary> /// 正文内容 /// </summary> public string content { get; set; } } Controllers: 导入命名空间: using HtmlAgilityPack; public ActionResult Index() {

利用Python抓取和解析网页

ぃ、小莉子 提交于 2019-12-23 21:29:56
  【 IT168 技术专稿 】对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web 服务器 或者Web浏览器就能够解析和处理HTML文档。本文将详细介绍如何利用Python抓取和解析网页。首先,我们介绍一个可以帮助简化打开位于本地和Web上的HTML文档的Python模块,然后,我们论述如何使用Python模块来迅速解析在HTML文件中的数据,从而处理特定的内容,如链接、图像和Cookie等。最后,我们会给出一个规整HTML文件的格式标签的例子,通过这个例子您会发现使用python处理HTML文件的内容是非常简单的一件事情。    一、解析URL   通过Python所带的urlparse模块,我们能够轻松地把URL分解成元件,之后,还能将这些元件重新组装成一个URL。当我们处理HTML 文档的时候,这项功能是非常方便的。    import urlparse   parsedTuple = urlparse.urlparse(    " http://www.google.com/search?   hl = en & q = urlparse & btnG = Google + Search " )   unparsedURL = urlparse

python网络爬虫(一):网络爬虫的定义

梦想的初衷 提交于 2019-12-21 17:14:01
网络爬虫,即Web Spider,是一个很形象的名字。 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。 网络蜘蛛是通过网页的链接地址来寻找网页的。 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。 如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。 这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序。 网络爬虫的基本操作是抓取网页。 来源: https://www.cnblogs.com/whu-2017/p/8540732.html

用TinySpider进行网页抓取实例

坚强是说给别人听的谎言 提交于 2019-12-19 18:53:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 非常感谢@李少龙 的提醒 本例中用到的maven坐标变化如下: <dependency> <groupId>org.tinygroup</groupId> <artifactId>org.tinygroup.spider</artifactId> <version>0.1.0-SNAPSHOT</version> </dependency> 在百度中搜索笑话,看到这么一个网站:http://www.jokeji.cn/,点进去看看,里面的内容比较简单,也比较有趣,呵呵,就它了,我们今天的示例就是如何利用TinySpider来进行网页抓取。 示例1:获取某个分类下的笑话列表 首先在笑话分类中看到个爆笑男女,呵呵,先拿它小试一下,看看是否有效果。 首先编写一个main方法,内容如下: public class JokejiTest { public static void main(String[] args) { Spider spider = new SpiderImpl("GBK"); Watcher watcher = new WatcherImpl(); watcher.addProcessor(new PrintJokejiProcessor()); QuickNameFilter<HtmlNode>

悠然乱弹:WebMagic VS TinySpider

a 夏天 提交于 2019-12-19 18:23:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上次 @黄勇 提到与 @黄亿华 WebMagic比较的问题。我在后面简单回复了一下下,现系统整理一下,不一定正确。 两者都是可以用于网页数据抓取,都有良好的扩展性及架构设计,但是由于定位稍有差异,因此在开发的时候各有侧重点,今天就写一篇专门的文章进行比较,由于对WebMagic学习得还不够,因此有些地方可能是错误地,欢迎指正或板砖伺候。 一、扫描方法的差异 a.WebMagic的扫描 WebMagic采用的是遍地撒网、愿者上勾的方式,怎么解释这个遍地撒网呢? 在进行内容抓取的时候,与事先定义好的处理器中的匹配规则进行匹配,匹配成功则处理之。 把所有的超链接找到并添加到待处理列表中,然后对新找到的链接继续进行处理。 所以WebMagic会把所有的页面都扫描一次,在扫描的过程中进行匹配,匹配上的进行处理。 b.TinySpider的扫描 TinySpider采用的则是抽丝剥茧,精确打击的策略。什么个意思呢? 在进行内容抓取的时候,首先有个入口页面,然后在上面定义了许多Watcher,实际上就是关注点了,只有它关注的点匹配的,才会执行其后续的动作触发,也就是扫描哪些页面或者后续扫描的走向是由程序员完全把控的。 所以TinySpider在扫描的时候,不一定会扫描所有的页面,只扫描自己关心的内容。当然

网络爬虫基本原理以及抓取策略了解

…衆ロ難τιáo~ 提交于 2019-12-17 14:53:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。 一、网络爬虫的基本结构及工作流程 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL; 2.将这些URL放入待抓取URL队列; 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。 二、从爬虫的角度对互联网进行划分 对应的,可以将互联网的所有页面分为五个部分: 1.已下载未过期网页 2.已下载已过期网页:抓取到的网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。 3.待下载网页:也就是待抓取URL队列中的那些页面 4.可知网页:还没有抓取下来,也没有在待抓取URL队列中,但是可以通过对已抓取页面或者待抓取URL对应页面进行分析获取到的URL,认为是可知网页。 5.还有一部分网页

Python网页解析:BeautifulSoup vs lxml.html

耗尽温柔 提交于 2019-12-11 11:42:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Python里常用的网页解析库有BeautifulSoup和lxml.html,其中前者可能更知名一点吧,熊猫开始也是使用的BeautifulSoup,但是发现它实在有几个问题绕不过去,因此最后采用的还是lxml: 1. BeautifulSoup太慢。熊猫原来写的程序是需要提取不定网页里的正文,因此需要对网页进行很多DOM解析工作,经过测试可以认定BS平均比lxml要慢10倍左右。原因应该是libxml2+libxslt的原生C代码比python还是要更快吧 2. BS依赖python自带的sgmllib,但是这个sgmllib至少有两个问题。首先,它解析“class=我的CSS类”这样的字符串会有问题,参考下面的代码就知道了。 from BeautifulSoup import BeautifulSoup html = u'<div class=我的CSS类>hello</div>' print BeautifulSoup(html).find('div')['class'] 打印出来的结果是长度为零的字符串,而不是“我的CSS类”。 不过这个问题可以通过外围代码来解决,只要改写一下sgmllib的attrfind这个查找元素属性的正则就行,可以改成 sgmllib.attrfind = re

Fiddle无法抓取网页信息或HTTPS

╄→尐↘猪︶ㄣ 提交于 2019-12-09 16:38:39
1:清除电脑根证书; 打开dos命令框,输入:certmgr.msc ![file](https://img2018.cnblogs.com/blog/1023158/201912/1023158-20191209161257694-1207118491.jpg) 2:操作-查找证书-输入“fiddle”;删除所有已查到的证书 ![file](https://img2018.cnblogs.com/blog/1023158/201912/1023158-20191209161257960-588956781.jpg) 3:清除谷歌浏览器的证书; 打开谷歌浏览器输入:chrome://settings/ ![file](https://img2018.cnblogs.com/blog/1023158/201912/1023158-20191209161258525-99089347.jpg) 找到该图中所示fiddle的证书,删除即可 ![file](https://img2018.cnblogs.com/blog/1023158/201912/1023158-20191209161258966-939783258.jpg) 4:打开fiddle 选择tools-->options-->https;选择如下图 ![file](https://img2018.cnblogs.com

爬虫之静态网页爬虫(基础知识)

一笑奈何 提交于 2019-12-09 11:28:00
1.环境搭建-Python Unix                               基础环境-Windows   1.pip,并设置pip源                                1.直接下载Anaconda,很多比较难以安装的资源都已经包含了    配置pip conf,自动设置源                             配置pip源,各个系统默认pip.ini位置不同,需要根据实际情况设置     #mkdir ~/.pip/                                  官网:http://anaconda.org/     #vim~/.pip/pip.conf                                下子主页:https://www.continuum.io/downloads     [global]     index-url=http://pypi.tuna.tsinghua.edu.cn/simple   也可以每次安装的时候制定source     #pip install -i http://pypi.tuna.tsinghua.edu.cn/simple xlml 2.http协议   物理层:电器连接   数据链路层:交换机

用scrapy进行网页抓取

不问归期 提交于 2019-12-08 22:24:18
最近用scrapy来进行网页抓取,对于pythoner来说它用起来非常方便,详细文档在这里:http://doc.scrapy.org/en/0.14/index.html 要想利用scrapy来抓取网页信息,需要先新建一个工程, scrapy startproject myproject 工程建立好后,会有一个myproject/myproject的子目录,里面有item.py(由于你要抓取的东西的定义),pipeline.py(用于处理抓取后的数据,可以保存数据库,或是其他),然后是spiders文件夹,可以在里面编写爬虫的脚本. 这里以爬取某网站的书籍信息为例: item.py如下: ? [python] view plain copy from scrapy.item import Item, Field class BookItem(Item): # define the fields for your item here like: name = Field() publisher = Field() publish_date = Field() price = Field() ? 我们要抓取的东西都在上面定义好了,分别是名字,出版商,出版日期,价格, 下面就要写爬虫去网战抓取信息了, spiders/book.py如下: ? [python] view plain