Spider

流程:

迭代进行:种子url->Element遍历获取超链接lin->作为新种子id

⚠️注意频率和遍历深度

1.设定url及请求参数

headers = {"user-agent": "Baiduspider"}base_url = "https://www.zhihu.com"suffix = "/explore"entry_url = base_url + suffix

2.读取请求返回结果,及解析

response = requests.get(entry_url, headers=headers).textsoup = bs4.BeautifulSoup(response, "lxml")page_set = soup.find_all("a")

3.设定正则匹配规则,读取内容,取出结果

links = set()for ele in page_set:    raw_link = ele["href"]    # print(f"raw_link = {raw_link}")    proper_link = re.compile(r"^/question/.*").findall(raw_link)    for final_link in proper_link:        links.add(base_url + final_link)

该流程仅遍历了一个页面的结果

Original: https://www.cnblogs.com/wanghuanyeah/p/14462221.html
Author: wanghuanyeah
Title: Spider

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590209/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 自己动手实现一个阻塞队列

    阻塞队列介绍 顾名思义,阻塞队列是一个具备先进先出特性的队列结构,从队列末尾插入数据,从队列头部取出数据。而阻塞队列与普通队列的最大不同在于阻塞队列提供了阻塞式的同步插入、取出数据…

    Java 2023年6月8日
    062
  • 【hexo博客搭建】将搭建好的hexo博客部署到阿里云服务器上面(下)

    一.部署到阿里云服务器 既然博客也已经成功在本地部署,然后主题也成功安装,接下来就可以部署到服务器上面了,如果你也想要魔改matery主题,可以去各种博客上面找一找大佬的教程,或者…

    Java 2023年6月13日
    065
  • Nginx 负载均衡配置

    现有三台服务器 10.160.51.16 10.160.51.54 10.160.51.55 16配置nginx , 请求转发到其余两台 修改默认配置如下: cd /etc/ngi…

    Java 2023年5月30日
    066
  • Ubuntu 20.04 查看内存信息

    输入命令 dmidecode -t memory 输出如下: dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 pr…

    Java 2023年6月7日
    089
  • linux 命令行出现-bash-4.2$的解决办法

    linux 命令行出现-bash-4.2$的解决办法 Linux服务器新建立的用户在登录时显示”-bash-4.2$”,而不是”user@主机名…

    Java 2023年6月9日
    0123
  • 最新MongoDB安装,学习笔记

    MongoDB 导读 作者还在陆续更新中,如果喜欢作者的笔记,觉得可以学习到有帮助,后面会不断学习新内容,就点个关注吧,如果觉得文章有关注可以点个赞,谢谢; 官网:https://…

    Java 2023年6月9日
    067
  • Linux 程序后台运行 ☞ nohup

    nohup(no hang up),可以使程序在系统后台运行,即使退出终端也不受影响。 安装教程: CSDN: Linux 安装nohup 常见问题 执行jar包时: ignori…

    Java 2023年6月5日
    075
  • 洛谷P2664 树上游戏(点分治)

    Sol 神仙题。。Orz yyb 考虑点分治,那么每次我们只需要统计以当前点为(LCA)的点对之间的贡献以及(LCA)到所有点的贡献。 一个很神仙的思路是,对于任意两个点对的路径上…

    Java 2023年5月30日
    078
  • 设计模式学习笔记(十一)外观模式及其应用场景

    外观(Facade)模式,又叫做门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问的模式。比如说我们日常生活中医院的分诊台,就是实现统一访问接口的…

    Java 2023年6月6日
    087
  • 10、SpringBoot 启动 刷新应用上下文 自动装配解析(二)

    书接上文中最重要的两个方法,我们先看第一个,debug进入 public void parse(Set<beandefinitionholder> configCand…

    Java 2023年6月13日
    064
  • 云原生的概念

    云原生其实是一种思想,并不是一种工具,云原生更多的是一种泛化的东西,是一种思想观念,首先要有意识的去想云原生这种东西,其次,他是一种技术、流程和企业管理方法的集合,所谓的技术,k8…

    Java 2023年6月8日
    068
  • 初始Activiti

    工作流,简单的理解就是工作流程,工作流在我们日常生活中无处不在,例如说:员工请假,首先需要提交请假申请,然后提交的申请转到上级领导手里,领导检查过后并同意,最后通知员工领导同意该请…

    Java 2023年6月16日
    073
  • spring boot 发布 jar 包转为 war

    Spring Boot 支持发布jar包和war包,它推荐的是使用jar形式发布 使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题 j…

    Java 2023年5月30日
    080
  • 2.Add Two Numbers——LeetCode

    You are given two non-empty linked lists representing two non-negative integers. The digit…

    Java 2023年6月15日
    088
  • SpringBoot基础注解

    @SpringBootApplication:核心启动类,开启自动配置,相当于@SpringBootConfiguration+@EnableAutoConfiguration+@…

    Java 2023年6月8日
    067
  • 如何优雅的定义统一响应对象

    Hope is being able to see there is light despite all of the darkness 目前主流开发方式都是前后端分离的,定义一种…

    Java 2023年6月13日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球