网页qq抓取什么原理(网络爬虫常见的抓取策略:1.深度优先遍历策略深度 )
优采云 发布时间: 2021-09-17 14:13网页qq抓取什么原理(网络爬虫常见的抓取策略:1.深度优先遍历策略深度
)
有一个特殊的爬虫网站:网络爬虫的基本原理
网络爬虫是搜索引擎捕获系统的重要组成部分。爬虫的主要目的是将Internet上的网页下载到本地,以形成网络内容的镜像或备份。本博客主要对爬虫和爬虫系统进行简要概述
一、web爬虫的基本结构和工作流程
网络爬虫的总体框架如图所示:
网络爬虫的基本工作流程如下:
二、从爬虫的角度划分互联网
相应地,互联网的所有页面可分为五个部分:
三、crawling策略
在爬虫系统中,要获取的URL队列是一个非常重要的部分。URL队列中要获取的URL的排列顺序也是一个非常重要的问题,因为它涉及先获取页面,然后获取哪个页面。确定这些URL顺序的方法称为爬网策略。以下重点介绍几种常见的捕获策略:
1.深度优先遍历策略
深度优先遍历策略意味着网络爬虫将从起始页开始,逐个跟踪链接。处理完这一行后,它将转到下一个起始页并继续跟踪链接。以下图为例:
遍历路径:a-f-g e-h-i B C D
2.width优先遍历策略
宽度优先遍历策略的基本思想是将新下载的网页中的链接直接插入要爬网的URL队列的末尾。也就是说,网络爬虫将首先抓取起始页面中的所有链接页面,然后选择其中一个链接页面以继续抓取此页面中的所有链接页面。以上图为例:
遍历路径:a-b-c-d-e-f g h I
3.反向链路计数策略
反向链接数是指其他网页指向某个网页的链接数。反向链接的数量表示其他人推荐网页内容的程度。因此,大多数情况下,搜索引擎的爬行系统都会利用这个指标来评价网页的重要性,从而确定不同网页的爬行顺序
在现实的网络环境中,由于广告链接和作弊链接的存在,反向链接的数量不能完全等着他或我。因此,搜索引擎经常考虑可靠的反向链接数量
一个简单的爬虫程序示例在同一个城市中爬行58所房屋,包括介绍、房屋类型、房价和其他信息,然后将它们写入rent.csv文件以形成一个表
#!/usr/bin/python
#coding=utf-8
from bs4 import BeautifulSoup
from urlparse import urljoin
import requests
import csv
# 选取价格在1500-2000之间的房子信息
url = 'http://bj.58.com/pinpaigongyu/pn/{page}/?minprice=1500_2000'
page = 0
csv_file = open('rent.csv','wb')
csv_writer = csv.writer(csv_file,delimiter = ',')
while True:
page += 1
print "fetch: ",url.format(page = page)
response = requests.get(url.format(page = page))
html = BeautifulSoup(response.text)
house_list = html.select('.list > li')
if not house_list:
break
for house in house_list:
house_title = house.select("h2")[0].string.encode("utf-8")
house_url = urljoin(url,house.select("a")[0]["href"])
house_info_list = house_title.split()
if "公寓" in house_info_list[1] or "青年公寓" in house_info_list[1]:
house_location = house_info_list[0]
else:
house_location = house_info_list[1]
house_money = house.select(".money")[0].select("b")[0].string.encode("utf-8")
csv_writer.writerow([house_title,house_location,house_money,house_url])
csv_file.close()
生成的rent.csv表的呈现如下所示: