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

小型公司建网站网页设计教材

小型公司建网站,网页设计教材,机电建设工程施工网站图片,专业建设网站企业基本介绍 对外接口 对外提供两个接口#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.pierceye.com/news/308325/

相关文章:

  • 网站布局手机百度网址大全
  • 企业网站做多大擦边球做网站挣钱
  • 网站怎么备份做网站建设要学多久
  • 怎样做买东西的网站外汇期货喊单网站怎么做的
  • 博客网站推荐郑州哪里做网站
  • 贵州建设职业技术学院网站网站开发 多语言
  • 网站后台管理系统怎么进重庆建设工程安全管理局网站
  • 移动网站开发的视频下载百度网盘下载官网
  • 在百度备案网站建设工程检测网
  • 广州企业网站营销电话公司网站怎么做啊
  • 如何利用视频网站做推广网站开发管理学什么
  • 福建漳发建设有限公司网站做网站申请什么商标
  • 专门做房产的网站上海网站开发毕业生
  • 网站域名已经解析但没有被百度等搜索引擎收录怎么办可以做投票功能的网站
  • 重庆网站设计总部什么是社交电商平台
  • 内容管理网站百度电商平台
  • 网站建设 万网网站统计插件
  • 怎么个人网站设计网站建设 不违背
  • 图片下载网站郑州联通网站备案
  • 名师工作室网站建设 意义o2o新零售系统
  • 域名查询权威网站网页设计基础填空题及答案
  • 网站建设策划方案如何写新开传奇新服网
  • dedecms网站上传服务器不是空间网站正则表达式怎么做
  • 青岛企业建设网站企业南宁网站开发建设
  • 网站备案是先做网站还是做完了备案效果好的手机网站建设
  • 做企业宣传网站沈阳妇科检查去哪个医院较好
  • 网站为什么维护wordpress 交易平台
  • 南京 电子商务网站5118数据分析平台官网
  • 试析企业网站建设模式建网站的网络公司
  • 内蒙古建设 招聘信息网站平台搭建