1.爬虫基本概述

1.1什么是爬虫

网络爬虫是一种程序,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站.样子好像一只大蜘蛛.爬虫是一个模拟人类请求网站行为,并批量下载网站资源的一种程序或自动化脚本。

1.2爬虫基本流程

  1. 通过request请求网页
  2. 获得相应内容
  3. 解析内容
  4. 存储解析的数据
  5. 爬虫与反爬虫

2具体步骤

2.1请求网页

通过HTTP库向目标站点发起请求,即发送一个request,请求可以包含headers等信息,然后等待服务器响应。

2.2获得相应内容

若服务器能正常响应,会获得response,response的内容便是所要索取的页面内容。

2.3解析内容

解析可通过1.正则表达式2.HTML解析3.BeautifulSoup4.XPath

  • 正则表达式:有很多现成的库可以直接用,不需要我们去大量定义正则表达式,且没法复用。
  • BeautifulSoup:是基于DOM的方式,简单的说就是会在解析时把整个网页内容加载到DOM树里,内存开销和耗时都比较高,处理海量内容时不建议使用。
  • HTML解析:高度封装且源码清晰,它直接整合了大量解析时繁琐复杂的操作,同时支持DOM解析和XPath解析两种方式,灵活方便。
  • XPath:基于SAX的机制来解析,不会像BeautifulSoup去加载整个内容到DOM里,而是基于事件驱动的方式来解析内容,更加轻巧。

2.4存储解析的数据

保存形式较多,可以保存为文本,也可以保存至数据库或者特定格式的文件(with open函数用于持续化存储)。

2.5爬虫与反爬虫

爬虫:使用任何技术手段,批量获取网站信息的一种方式。关键在于批量。

反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式,关键也在于批量。

查看网站use-agent:

import urllib
from urllib import requestheaders = {"user-agent":"ozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52 "}url = "https://www.baidu.com"rep = urllib.request.Request(url=url,headers=headers)res = urllib.request.urlopen(rep)

202012798范明霞的博客相关推荐

  1. 李明杰的视频和李明杰的博客是学习OC的基础

    http://www.cocoachina.com/bbs/read.php?tid=196664 转载于:https://www.cnblogs.com/guozai9527/p/4025125.h ...

  2. 2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜

    ​ 2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜 备注: 数据来源 :https://pachong.vip/csdn/blogstar,如有侵权,联系秒删~ 博主链接: htt ...

  3. 2022年博客之星排行榜 日榜 2023-01-02 博客之星总榜

    # 2022年博客之星排行榜 日榜 2023-01-02 博客之星总榜 备注: 数据来源 :https://pachong.vip/csdn/blogstar,如有侵权,联系秒删~ 博主链接: htt ...

  4. 2022年博客之星排行榜 日榜 2022-12-31 博客之星总榜

    2022年博客之星排行榜 日榜 2022-12-31 博客之星总榜 备注: 数据来源 :https://pachong.vip/csdn/blogstar,如有侵权,联系秒删~ 博主链接: http: ...

  5. 2022年博客之星排行榜 日榜 2023-01-03 博客之星总榜

    2022年博客之星排行榜 日榜 2023-01-03 博客之星总榜 备注: 数据来源 :https://pachong.vip/csdn/blogstar,如有侵权,联系秒删~ 博主链接: http: ...

  6. 推荐的讲解算法的网站、好博客:

    http://www.csie.ntnu.edu.tw/~u91029/ 讲解.代码格式.图表都很规范,覆盖广 http://www.matrix67.com/informatics.html Mat ...

  7. 个人主页博客网页设计制作HTML5+CSS大作业——个人相册展示留言博客模板(6页) 简单个人网页制作

    HTML5+CSS大作业--个人相册展示留言博客模板(6页) 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服 ...

  8. 一个程序员的自白:我为什么写博客

    时间: 2011年 人物: 初出茅庐的臭小子, 臭石头一般坚硬的相信我将来一定会成为富二代他爹. 我来到一个大型互联网公司, 同事很nice, 管理很自由, 在这里开始了我的码农生涯. 我很敬重部门老 ...

  9. CSDN写博客更改代码颜色为白色代码样式

    一.背景 在平时发博客时,代码块背景默认是黑色的,而注释是黑色的,总是看起来很不清楚. 直接上图: 注释看起来很不清晰,现在我们修改一下颜色为白色. 直接上图: 下面是具体设置方式,还有更多颜色任你挑 ...

最新文章

  1. 经典:盘点80后男人找老婆的20条标准
  2. ExtJs Form 表单验证
  3. sqlite to mysql_SqliteToMysql
  4. php iconv 无效,关于nodejs iconv的编码无效 说明
  5. 剑指Offer - 面试题36. 二叉搜索树与双向链表(中序循环/递归)
  6. 基于tcpdump实例讲解TCP/IP协议
  7. 共享充电宝“脱贫”:打脸王思聪 眼红了“负翁”ofo
  8. 前端开发者必备的代码开源平台
  9. STM8学习笔记---union联合体的应用
  10. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
  11. Android布局之屏幕自适应
  12. SpringMVC的Model、Model Map、ModelAndView
  13. 通过给目标函数增加一个正则项来防止其过拟合
  14. 用C语言实现PID控制代码
  15. 影响力最大化 RIS 反向影响力采样算法
  16. 驱动开发:断链隐藏驱动程序自身
  17. 操作系统--04文件管理
  18. *【华为机试真题详解】判断字符串子序列**
  19. php判断学生姓名,【PHP】百家姓姓名判断
  20. 医依通小程序项目总结

热门文章

  1. 前端实现图片验证码效果(数字和字母)
  2. 【蓝桥杯集训·每日一题】AcWing 3777. 砖块
  3. 解决tar: Error is not recoverable: exiting now
  4. 第 l 个数到第 r 个数的和
  5. linux学习-解决“sshd: no hostkeys available -- exiting”
  6. 纯jquery 前端导入 Excel数据 减少服务端压力
  7. 7种常用函数图象及4种函数图象变换规则
  8. 我的职业生涯(五) 告别六天工作制
  9. 腾讯云web应用防火墙(WAF)防护设置步骤介绍
  10. 《利用python进行数据分析》第二版 第13章-Python建模库介 学习笔记