智能采集组合文章(谷歌网络爬虫的本质一种)
优采云 发布时间: 2021-11-17 10:19智能采集组合文章(谷歌网络爬虫的本质一种)
网络爬虫之所以被称为爬虫,是因为它们可以沿着网络爬行,本质是一种递归的方法。为了找到URL连接,他们必须首先获取页面的内容并检查页面的内容。查找另一个 URL,获取该 URL 的内容,并重复该过程。
1. 遍历单个域名
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
#使用时间产生随机数
random.seed(datetime.datetime.now())
#定义getlinks函数,遍历页面生成link函数序列
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div", {"id":"bodyContent"}).findAll("a",href=re.compile("^(/wiki/)((?!:).)*$"))
#主函数,传入参数/wiki/Kevin_Bacon,定义首页
links = getLinks("/wiki/Kevin_Bacon")
#使用随机数随机选择一个link进行爬行
while len(links) > 0:
newArticle = links[random.randint(0, len(links)-1)].attrs["href"]
print(newArticle)
links = getLinks(newArticle)
2.采集整体网站
以上程序主要分为三部分: 1. 定义页面为空集合
2.定义一个函数:
3. main函数处理一个空页面,其实就是维基百科的首页,然后调用getlink函数遍历页面上的每个链接。
注意:上面的程序是一个递归程序。python默认递归层数为1000次,达到次数后停止。我们可以写一个非递归的程序,可以将所有新的页面加入到集合中,每次我们从集合中随机抽取一个页面进行遍历、删除,然后随机抽取一个页面。当然,如果页面太多,可能会造成采集。太大了,你可以用聪明的方法来解决问题。
3.通过互联网的数据采集
可以说,你可以用你的电脑和一个python代码构建一个谷歌——当然是1994年的谷歌。谷歌最宝贵的资源是它存储在世界各地的*敏*感*词*数据仓库。这是无数谷歌爬虫日以继夜的结果。但是,现有网络世界中还有90%的网络资源是谷歌爬虫没有达到的。有兴趣的可以了解一下深网和暗网。
4.对数据使用scrapy采集
看: