php 循环抓取网页内容(php循环抓取网页内容,用于爬虫程序,数据库字段不限!)
优采云 发布时间: 2021-10-04 06:01php 循环抓取网页内容(php循环抓取网页内容,用于爬虫程序,数据库字段不限!)
php循环抓取网页内容,用于爬虫程序,数据库字段不限!适合数据量较大的网站;python循环抓取网页内容,以json格式保存,多线程抓取;用于爬虫程序的辅助,与php搭配才能发挥python作为爬虫程序的优势!,适合网站量小的爬虫程序!
爬虫起初用于小规模的抓取,传统的爬虫是关键字爬虫,抓取站长或发布链接的人,用你的spider模块或者python的urllib2这类api,python能帮你做很多,慢慢随着规模的增大,存储方式,网站规模,以及访问是否是https的需求都会出现不同的问题,而且带来许多开发的麻烦。现在解决这些难题的方法就是有数据存储就是nginx之类的反向代理,spam封ip的方式就是给大家一个好处,就是我只要让被抓取的网站收不到post的post请求,你就别管我要我的ip,user-agent的ip,因为你输入的就是post请求的ip,user-agent一样,请求头一样,这个请求是不会是来自你自己的网站的。
再就是,以python的get方式来获取资源就是一条一条的对爬虫进行request了。如果你要准备通吃,python和爬虫兼容能力最好。
简单说下两者的不同,爬虫是拿数据不停地去抓取,做成csv格式,把他们保存起来,nginx缓存到各个网站的自己的数据库中。字符抓取主要是针对字符串的提取和处理,比如你设置了很多的tag,它是可以自动去匹配其中的tag,对每个tag匹配成功返回不同的页面链接。然后norma机制可以让你把一个字符串不停地for、for-in等遍历下去,保存到数据库中。
这样的话,以后只要再次查询某个目标,直接用字符爬虫去抓就可以。目前国内没有全面的norma机制解决,就有一个daocloud的norma引擎。对字符爬虫来说,资源消耗还是挺大的,因为它需要不停地匹配每个目标网站的每个页面,这中间,需要网站有非常多的tag,这么多tag的字符我们必须得全部数据库导出。这就有一个old-fashioned的问题,可以推荐使用urllib2,或者celery来处理post请求。
thrift实在太慢,urllib2貌似有点问题。所以呢,你看到现在的那些requests(urllib2)几乎都是用来做post方式的爬虫的。至于thrift实在不推荐,实在很慢。基本上urllib2=celery>mongodb>redis.exec或者redis。关于celery,blogzip中有比较详细的文章。
其实我个人认为...h2o是最好的,甚至thrift也不算差,但是facebook都不用了,说明celery也可以,希望其他同学推荐下。