做爬虫需要什么配置笔记本
1. 爬虫对笔记本的要求
现如今在许多linux和UNIX的版本中默认已经自带了python的安装版本。比如如果你的笔记本上装了Ubuntu操作系统的话,打开终端直接输入python,那么恭喜你,你可以直接使用Python了。如今,某些Windows预装的台式机(比如某些HP服务器)也都预装了Python. 因此Python安装时所需资源非常低。如果笔记本上是Windows/Mac, 直接去Python的官网下载所需版本,直接安装也就好了。现在的笔记本配置运行Python程序都绰绰有余的。即使是早期的电脑配置如奔腾处理器时代,256 m 内存或者512内存即可,20g以上硬盘, 跑起Python都不费力。
希望以上得回答能够帮助你。
2. 怎么选择一款适合大学生的笔记本
可以通过这几个方面考虑
看自己的所选专业,所学课程是不是需要电脑,要什么样的电脑
像是计算机{信息}专业,土木专业的高性能的笔记本的标配。计算机专业需要学习编程,爬虫。土木需要用电脑绘制大量的专业图纸。如果没有好的电脑,可能在你做作业的时候电脑崩溃,你就要从头来过
看自己需要,
在满足专业需要时,自己如果只是需要看看视频,娱乐一下普通电脑足够用,如果是玩游戏,对配置要求高,那就买高配的
看预算
笔记本有好几个档位,根据预算购买
3. 为什么macbook可以运行爬虫
在macbook爬虫演练方便。MacBook是2015年苹果公司出品的笔记本电脑,因为在macbook演练爬虫方便,直接到VPS上操作文件效率不高,所以无论是MAC还是WINDOWS,都在本地安装和调试。
4. 做分布式爬虫和搜索引擎对于服务器配置有什么要求
实验室用的爬虫和搜索引擎的服务器不能低于 4核心~8核心的,内存越大越好。
因为爬虫和搜索引擎对CPU计算能力要求高,对内存的存储能力要求大。
5. python爬虫常用解析库lxml、pyquery、bs4、re执行效率对比
我们知道python爬虫的解析库有很多,我们选取了lxml,bs4,re,pyquery,进行测试。
测试环境:本人用的是台式电脑进行的测试,win10系统配置为i5,16G内存(ddr3),不同的电脑跟网络环境直接影响解析速度,在相同的环境下,时间浮动不会太大
6. 什么网络爬虫
多次被人问到这个问题,看来需要做一点说明,这里简单介绍一下搜索引擎的机器爬虫的制作和一些基本要注意的事项。
说的简单易懂一些,网络爬虫跟你使用的〖离线阅读〗工具差不多。说离线,其实还是要跟网络联结,否则怎么抓东西下来?
那么不同的地方在哪里?
1】 网络爬虫高度可配置性。
2】 网络爬虫可以解析抓到的网页里的链接
3】 网络爬虫有简单的存储配置
4】 网络爬虫拥有智能的根据网页更新分析功能
5】 网络爬虫的效率相当的高
那么依据特征,其实也就是要求了,如何设计爬虫呢?要注意哪些步骤呢?
1】 url 的遍历和纪录
这点 larbin 做得非常的好,其实对于url的遍历是很简单的,例如:
cat [what you got]| tr \" \\n | gawk '{print $2}' | pcregrep ^http://
就可以得到一个所由的 url 列表
2】多进程 VS 多线程
各有优点了,现在一台普通的PC 例如 booso.com 一天可以轻松爬下5个G的数据。大约20万网页。
3】时间更新控制
最傻的做法是没有时间更新权重,一通的爬,回头再一通的爬。
通常在下一次爬的的数据要跟上一次进行比较,如果连续5次都没有变化,那么将爬这个网页的时间间隔扩大1倍。
如果一个网页在连续5次爬取的时候都有更新,那么将设置的爬取时间缩短为原来的1/2。
注意,效率是取胜的关键之一。
4】爬的深度是多少呢?
看情况了。如果你比较牛,有几万台服务器做网络爬虫,我劝您跳过这一点。
如果你同我一样只有一台服务器做网络爬虫,那么这样一个统计您应该知道:
网页深度:网页个数:网页重要程度
0 : 1 : : 10
1 :20 : :8
2: :600: :5
3: :2000: :2
4 above: 6000: 一般无法计算
好了,爬到三级就差不多了,再深入一是数据量扩大了3/4倍,二是重要度确下降了许多,这叫做“种下的是龙种,收获的是跳蚤。”
5】爬虫一般不之间爬对方的网页,一般是通过一个Proxy出去,这个proxy有缓解压力的功能,因为当对方的网页没有更新的时候,只要拿到 header 的 tag就可以了,没有必要全部传输一次了,可以大大节约网络带宽。
apache webserver里面纪录的 304 一般就是被cache的了。
6】请有空的时候照看一下robots.txt
7】存储结构。
这个人人见智,google 用 gfs 系统,如果你有7/8台服务器,我劝你用NFS系统,要是你有70/80个服务器的话我建议你用afs 系统,要是你只有一台服务器,那么随便。
给一个代码片断,是我写的新闻搜索引擎是如何进行数据存储的:
NAME=`echo $URL |perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg'`
mkdir -p $AUTHOR
newscrawl.pl $URL --user-agent="news.booso.com+(+http://booso.com)" -outfile=$AUTHOR/$NAME
Posted at November 10, 2004 01:04 PM by Liang at 01:04 PM | Comments (2) | TrackBack(0) | Booso!|
7. 如何用Python做爬虫
在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。
我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧其实你很厉害的,右键查看页面源代码。
我们可以通过python来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。
8. Python爬虫与mac下Scrapy配置
用Python开发爬虫很方便。
本质:抓取---分析---存储
要点:
(1)get请求:最基本抓取。用到 urllib urllib2 requests httplib2 。
(2)表单登陆:向服务器发送post请求,服务器再将返回的cookie存入本地
(3)使用cookie登陆:
(4)对于反爬虫机制的处理:
(5)对于断线重连:使用multi_session和multi_open对爬虫抓取的session或opener进行保持
(6)多线程抓取
(7)对于Ajax请求
(8)自动化测试工具Selenium
由于 Linux下已经预装了 lxml 和 OPENSSL
如果想验证 lxml ,可以分别输入
出现下面的提示这证明已经安装成功
如果想验证 open ssl,则直接输入openssl 即可,如果跳转到 OPENSSL 命令行,则安装成功。
接下来直接安装 Scrapy 即可
安装完毕之后,输入 scrapy
注意,这里linux下不要输入Scrapy,linux依然严格区分大小写的,感谢kamen童鞋提醒。
如果出现如下提示,这证明安装成功
下面是stackoverflow上的高票解决办法:
I've just fixed this issue on my OS X.
Please backup your files first.
Scrapy 1.0.0 is ready to go.
9. 分布式爬虫需要用多台主机吗
分布式爬虫:将一个项目拷贝到多台电脑上,同时爬取数据。
1.必须保证所有电脑上的代码是相同的配置。
2.在其中一台电脑上启动redis和MySQL的数据库服务。
3.同时将所有的爬虫项目运行起来。
4.在启动redis和MySQL的电脑上, 向redis中添加起始的url。
q = queue()
url = q.get() # 如果队列是空的,那么get()方法会一直阻塞,直到能取到url,才会继续向下执行。
单机爬虫:一台电脑运行一个项目。去重采用了set()和queue(),但是这两个都是在内存中存在的。
1>其他电脑是无法获取另外一台电脑内存中的数据的。
2>程序终止,内存消失。
分布式问题:
1.多台电脑如何统一的对URL进行去重?
2.多台电脑之间如何共用相同的队列?多台电脑获取的request,如何在多台电脑之间进行同步?
3.多台电脑运行同一个爬虫项目,如果有机器爬虫意外终止,如何保证可以继续从队列中获取新的request,而不是从头开始爬取?
前两个问题可以基于Redis实现。相当于将set()和queue()从scrapy框架中抽离出来,将其保存在一个公共的平台中(Redis)。
第三个问题:scrapy_redis已经实现了,重启爬虫不会从头开始重新爬取,而是会继续从队列中获取request。不用担心爬虫意外终止。
