当前位置: 首页 > news >正文

龙岩市网站建设_网站建设公司_React_seo优化

网站建设优化项目,做移动网站优化软件,做网站推广 优帮云,济南做门户网站开发公司基本介绍 对外接口 对外提供两个接口#xff1a;一个可以提取URL#xff0c;一个可以增加URL#xff0c;分别对应图上的1和2。 当要爬取某个网页时#xff0c;则可以从1接口提取出该网页的URL进行爬取。 有时候爬取的网页内容中会包含别的网页链接#xff0c;即包含有U…基本介绍 对外接口 对外提供两个接口一个可以提取URL一个可以增加URL分别对应图上的1和2。 当要爬取某个网页时则可以从1接口提取出该网页的URL进行爬取。 有时候爬取的网页内容中会包含别的网页链接即包含有URL此时可以把包含的URL提取出来放入URL管理器以便后续进行爬取则可以利用2接口向URL管理器新增URL 实现逻辑 图中的3从URL管理器取出一个URL时将该URL的状态进行更改如已爬取、爬取成功、爬取失败等有多少种状态根据具体需求定义以防止重复对同一URL进行爬取。 图中的4把从爬取的网页内容中解析出来的URL放入到URL管理器中前需要判断URL管理器中是否已存在该URL已存在就不需要再添加还是防止对同一URL进行重复爬取。 数据存储 实现URL管理器有5、6、7三种 图中的5利用python内存实现。 用python中的set集合实现URL管理器set集合可以实现自动去重而且可以快速的判断集合中是否已存在某个元素。 已爬取的URL可以用一个set来表示未爬取的URL用另一个set集合表示。从未爬取的URL集合中取出一个URL进行爬取并将该URL标记为已爬取URL放入到已爬取URL的set集合中。当要新增一个URL时即把新增URL放入未爬取URL集合中如果未爬取URL集合已存在该URL则不会重复添加实现了图中4的逻辑。 如果一个URL有多种状态如正在爬取中爬取失败、爬取成功等可以为每种状态设置一个set集合进行存储。当状态发生转变时从相应的集合中取出放入到转变后的集合中。 图中的6利用Redis实现 实现逻辑和python内存类似区别在于Python内存一旦断电就要从头开始执行但是Redis可以保存中间状态断电后数据不会消失 图中的7利用MySQL数据库表 可以利用一张urls表进行存储该表中有两个字段url 和 url 对应的状态已爬取、未爬取等 URL 管理器的代码实现python内存实现 class UrlManage:URL 管理器def __init__(self):# 待爬取 URL 集合self.new_urls set()# 已爬取 URL 集合self.old_urls set()def get_url(self):从URL管理器中获取URL进行爬取if self.has_new_url():url self.new_urls.pop()self.old_urls.add(url)return urlreturn Nonedef add_new_url(self, url):新增一个 URLif url is None or len(url) 0:returnif url in self.old_urls or url in self.new_urls:returnself.new_urls.add(url)def add_new_urls(self, *urls):批量新增 URLif urls is None or len(urls) 0:returnfor url in urls:self.add_new_url(url)def has_new_url(self):判断是否还有待爬取 URLreturn len(self.new_urls) 0# 测试代码 if __name__ __main__:url_manage UrlManage()url_manage.add_new_url(url1)url_manage.add_new_urls(url1, url2, url3)print(已爬取set, url_manage.old_urls, 未爬取set, url_manage.new_urls)print(- * 20)url url_manage.get_url()print(url)print(已爬取set, url_manage.old_urls, 未爬取set, url_manage.new_urls)print(- * 20)url url_manage.get_url()print(url)print(已爬取set, url_manage.old_urls, 未爬取set, url_manage.new_urls)print(- * 20)url url_manage.get_url()print(url)print(已爬取set, url_manage.old_urls, 未爬取set, url_manage.new_urls)print(- * 20)print(url_manage.has_new_url())print(已爬取set, url_manage.old_urls, 未爬取set, url_manage.new_urls)
http://www.lebaoying.cn/news/27612.html

相关文章:

  • 公司网站建设项目目的wordpress修改所有的路径
  • 行业门户网站开发阿尔山网站建设
  • 物流专线做网站qq是用什么软件开发的
  • 全网营销网站怎么做做网站多少钱_西宁君博优选
  • 珠海企业网站建设网站备案的程序
  • 外贸网站建设ppt模板重庆专业的网站服务公司
  • 定制网站本地企业怎么做二维码进网站
  • 做公关用的网站综合网上购物商城
  • 粤icp备网站建设 中企动力广州视觉设计评价标准的要素
  • 网站详细报价展示类网站
  • 桂林市生活网官方网站北京做网站优化的科技公司
  • 专做电子产品评测的网站网站建设中html5
  • 有专业做网站的吗gre考“网站建设:上海珍岛”
  • 可以做动漫的网站wordpress文字头像
  • 家政服务网站模板网站建设公司企业文化
  • 小程序源码是什么意思手机一键优化
  • 建公司网站的公司网址格式
  • html5网站链接标签中国今天最新军事新闻
  • 交互式网站是什么意思城市生活服务app下载
  • 宁波网站建设详细内容音乐网站建设策划书
  • 电子产品在哪些网站做调研维纳斯式束腰Wordpress
  • 公司网站建设需要注意哪些问题怎么提高网站关键词排名
  • 中山网站建设第三性 wordpress
  • 网站建设构成技术要求四川省住房和城乡建设厅官网下载
  • 大型广告公司网站建设WordPress评论后自动刷新
  • 成都建站模板网站制作就有公司域名怎么建设网站
  • 中国建设银行总行网站服务营销的概念
  • 网站建设公司自适应源码北京爱空间装修公司
  • 代理备案 网站 安全吗长春亚泰吧
  • 城子河网站建设北京seo网站