爬虫基础
1. 爬虫原理是什么
网络爬虫(Web Crawler)是按照一定规则自动抓取网页信息的程序。
网络爬虫就是自动化从网页上获取信息、提取信息和保存信息的过程。、
2.状态码:响应头(Response Headers)中用于告知浏览器执行结果成功或失败
3.安装requests模块
# 安装requests模块
pip install requests
# 如果安装不上或安装缓慢,可在命令后面添加如下配置进行加速:
pip install requests -i https://pypi.mirrors.ustc.edu.cn/simple/
注:导入requests模块时,可能会出现如下报错信息。
ModuleNotFoundError: No module named 'requests'
出现这种报错原因可能是:模块未安装上或安装路径错误。
4.获取URL网页数据,并输出返回内容
使用函数:requests.get()获取网页信息。
# 使用import导入requests模块
import requests
# 将网页链接赋值给url
url = "https://www.csdn.net"
# 使用requests.get()方法获取url的内容,将结果赋值给response
response = requests.get(url)
# 输出response
print(response)
使用print输出响应消息会得到Response [200]表示响应消息中状态码为200,说明此次浏览器的请求执行成功。
使用.status_code属性可以查看状态码,这里输出的状态码数据类型是整型。
在浏览器中查看Response Headers中的信息就能够找到status:200,状态码200代表此次请求执行成功。
# 使用import导入requests模块
import requests
# 将网页链接赋值给url
url = "https://www.csdn.net"
# 使用requests.get()方法获取url的内容,将结果赋值给response
response = requests.get(url)
# 使用.status_code属性获取状态码,并赋值给statusCode
statusCode = response.status_code
# 输出statusCode
print(statusCode)
使用.status_code属性也可以查看状态码,这里输出的状态码数据类型是整型。
而只有状态码返回为200时,才能够成功获取到网页内容。
5.爬虫开头模板
# 使用import导入requests模块
import requests
# 将网页链接赋值给url
url = "https://mp.csdn.net"
# 使用requests.get()方法获取url的内容,将结果赋值给response
response = requests.get(url)
# 使用if语句判断.status_code属性获取的状态码等于200时
if response.status_code == 200:
# 输出response.status_code
print(response.status_code)
# 不满足条件时
else:
# 输出:获取数据失败
print("获取数据失败")
6.将获取到的网页信息提取出来
使用:.text属性
# 使用.text属性获取网页的内容,并赋值给content
content = response.text
7.HTML语言
<!doctype html><html lang="zh" data-server-rendered="true"><head><title>CSDN - 专业开发者社区</title> <meta name="keywords" content="CSDN博客,CSDN学院,CSDN论坛,CSDN直播"> <meta name="description" content="CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区."> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> <meta name="referrer" content="always"> <!----> <!----> <!---->
<script src="https://g.csdnimg.cn/tingyun/tingyun.js"></script>
<!----> <!----> <!----> <link rel="shortcut icon" href="https://g.csdnimg.cn/static/logo/favicon32.ico" type="image/x-icon"> <link rel="canonical" href="https://www.csdn.net"> <!---->
<meta name="toolbar" content={"type":"0","fixModel":"1"} />
<meta name="report" content={"spm":"1000.2115"} />
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js,user-tooltip/2.7/user-tooltip.js,lib/qrcode/1.0.0/qrcode.min.js"></script> <script src='//g.csdnimg.cn/common/csdn-report/report.js' type='text/javascript'></script>
<script src="https://g.csdnimg.cn/user-ordercart/2.0.1/user-ordercart.js?ts=2.0.1"></script>
<!---->
<script src="https://g.csdnimg.cn/common/csdn-login-box/csdn-login-box.js" defer></script>
<script src="https://g.csdnimg.cn/user-ordertip/3.0.2/user-ordertip.js?t=3.0.2"></script>
<!----> <!----> <!----> <!---->
<script>
window.TINGYUN && window.TINGYUN.init && window.TINGYUN.init(function (ty_rum) {
ty_rum.server = { "event_timeout": 60000, "dr_threshold": 4000, "opt_custom_param_rule": [], "cross_page_delay": 3000, "router_enable": true, "fp_threshold": 2000, "token": "568934913a6343de840a781ca5eaba4b", "beacon": "wkbrs1.tingyun.com", "trace_threshold": 7000, "x_server_switch": true, "ignore_err": false, "id": "hWg-u0rE5b8", "key": "Z1Tu5hoKbGw", "fs_threshold": 4000 };
});
</script>
<!---->
<script src="https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar.js"></script>
<link rel="stylesheet" href="https://csdnimg.cn/release/cmsfe/public/css/common.02cbff20.css"><link rel="stylesheet" href="https://csdnimg.cn/release/cmsfe/public/css/tpl/www-index-new/index.2453279e.css"></head> <body><div id="toolbarBox" style="min-height: 48px;"></div> <div id="app"><div><div class="main"><div class="page-container page-component"><div><div class="home_wrap"><div class="content_wrap"><div id="floor-nav_557" floor-index="0"><div comp-data="[object Object]" floor-data="[object Object]" class="blog-nav-tag" data-v-f8e9e086><div class="blog-nav " data-v-f8e9e086><img src="https://img-home.csdnimg.cn/images/20220107105619.png" alt class="blog-nav-down " data-v-f8e9e086> <div class="blog-nav-box" data-v-f8e9e086><ul class="def" data-v-f8e9e086><!----> <!----> <!----> <!----> <li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/back-end" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"back-end"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"back-end"}" data-v-f8e9e086>后端</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/web" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"web"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"web"}" data-v-f8e9e086>前端</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/mobile" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"mobile"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"mobile"}" data-v-f8e9e086>移动开发</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/lang" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"lang"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"lang"}" data-v-f8e9e086>编程语言</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/java" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"java"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"java"}" data-v-f8e9e086>Java</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/python" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"python"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"python"}" data-v-f8e9e086>Python</a></li><li class="navigation-right " data-v-f8e9e086><a href="https://blog.csdn.net/nav/ai" data-report-click="{"spm":"1001.2100.3001.7366","extend1":"ai"}" data-report-view="{"spm":"1001.2100.3001.7366","extend1":"ai"}" data-v-f8e9e086>人工智能</a></li><li class="navigation-right "
HyperText Markup Language,超文本标记语言,它用来定义网页内容和结构。
HTML是由一系列的标签组成,这些标签组合起来就是我们浏览器看到的网页。
标签:是用来标记内容块的,主要有两种形式成对出现和单独出现。
成对出现的标签
<开始标签>内容<结束标签>
结束标签只比开始标签多一个斜杠"/"。
1) <html></html>表明这是一个网页文档。
2) <head></head>标签用于定义文档的头部信息,这些信息不会展示在网页中。
3) <body></body>标签用于定义文档的主体,包含网页的图片、文字、链接、视频等多种展现形式。