2018-01-12 biezhi
说起爬虫,大家能够想起 Python 里赫赫有名的 Scrapy{:target="_blank"} 框架, 在本文中我们参考这个设计思想使用 Java 语言来实现一款自己的爬虫框(lun)架(zi)。 我们从起点一步一步分析爬虫框架的诞生过程。 继续阅读 »
2015-09-12 Golmic
Nodejs爬取蚂蜂窝文章的爬虫以及搭建第三方服务器 more 如题,本项目用Nodejs实现了对蚂蜂窝网站的爬取,并将数据储存到MongoDB中,再以Express作服务器端,Angularjs作前端实现对数据的托管。 本项目Github地址:https://github.com/golmic/mafengwo-spider 本项目线上地址: http://mafengwo.lujq.me 本文介绍其中部分的技术细节。 获取数据 打开蚂蜂窝网站,发现文章部分的数据是用Ajax获取的,包括分页也是,所以查看一下实际的请求路径,为http://www.mafengwo.cn/ajax/ajax_article.php?start= 继续阅读 »
2016-06-28 Alex Sun
一、引言 最早接触爬虫,是发现了一个叫做『豆瓣妹子』的网站,写了一个简单的程序可以批量下载图片。后来陆陆续续抓取过豆瓣电影,Google+,facejoking等网站。毕设的选题也是抓取新浪微博,然后分析博文的传播情况。最近一直对知乎的数据感兴趣,于是开发了Node模块zhihu-api,用于简化数据的抓取。 通常来说,所谓的爬虫,无非是通过程序来发送HTTP请求。因此理论上来说,所有浏览器能访问到的内容,都是可以通过爬虫来进行抓取的。 一般而言,我们所感兴趣的信息,只是页面中的某一部分数据,例如:某个标签的文本、链接地址、图片地址等。有些网站会提供开放的API(往往也会有很多限制),这时只需要直接请求该API,就可以拿到比较 继续阅读 »
2015-12-25 Golmic
在Scrapy框架下 more 蚂蜂窝 ```Python coding=utf-8 import json from urlparse import urljoin import re import logging import scrapy from scrapy.http import Request from scrapy.selector import Selector from andaman.utils.html import html2text, parse_time from andaman.items.qa import QAItem from andaman.items.jieban import Ji 继续阅读 »
2017-04-11 Borg
微博爬虫 + 社交网络图可视化 项目地址:WeiboSocialNetwork 先展示下结果再来解释代码: 首先有个R语言生成的 html 继续阅读 »
2017-06-26 Borg
什么是 robots.txt ? robots.txt 文件放置在网站根目录下,定义了什么样的客户端(web服务器以User-Agent识别客户端)可以访问的资源有哪些,不能访问的资源有哪些。以百度的 robots.txt 为例,如下: 继续阅读 »
2016-08-06 令狐葱
前言 故事还得从头说起。乌云网挂掉之后,乌云知识库也无法访问了。曾经,在上面看到那么多优秀的安全类文章,一下子看不到了,颇觉得有点不适应。还好网上流传着民间的各种版本,于是我收集了一下,放在了Github上。这些文章只是一些html文件,并不包含页面上的图片。幸运的是,图片的域名static.wooyun.com还可以继续访问,因此有必要把这些图片也抓取下来。 Wooyun Drops 文章在线浏览 Wooyun Drops 文章在线浏览 Github: wooyun_articles 使用Nodejs下载图片 抓取图片链接的过程在此不再详述,无非就是打开每个html页面,找到其中img标签的src属性。我们拿到了这些ht 继续阅读 »
2014-09-22 Golmic
下列代码全部基于python3.4 more ``` python import urllib.parse,urllib.request,http.cookiejar,os,xlrd,xlwt3,time,random print ("######## 确保关闭了所有的EXCEL,运行时不要打开任何EXCEL文件 ########") rfile = xlrd.open_workbook('read.xls') rfile.sheet_names() rsheet = rfile.sheet_by_name(u'Sheet1') resultfilenum = 0 result = str(resultfilenum) 继续阅读 »
2016-02-03 ruki
Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内。可以用于网络爬虫的url重复过滤、垃圾邮件的过滤等等。 它相比hash容器的一个优势就是,不需要存储元素的实际数据到容器中去来一个个的比较是否存在。 只需要对应的位段来标记是否存在就行了,所以想当节省内存,特别适合海量的数据处理。并且由于省去了存储元素和比较操作,所以性能也比基于hash容器的高了很多。 但是由于bloom filter没有去比较元素,只通过多个hash来判断唯一性,所以存在一定的hash冲突导致误判。误判率的大小由hash函数的个数、hash函数优劣、以及存储的位空间大小共同决定。 继续阅读 »
2016-08-02 You Li
之前在别的电脑上配置过scrapy,后来换了mac一直没有写过爬虫,今天跟着官方指南走的时候发现安装失败很久,代码里显示ImportError: No module named scrapy意识到安装可能出了一些问题。 Stackoverflow上面提到这个问题可能是由于文件命名导致的,但是我的文件命名并没有这个问题,于是就寻求别的解决办法,打算重新安装scrapy包。 继续阅读 »