什么是爬虫
网络爬虫,是按照一定逻辑或者规则,自动去抓取互联网上的程序
浏览网页的基本流程
我们在浏览器地址栏里面输入一个地址,敲击回车后,浏览器会通过DNS查找到对应的IP地址,然后向IP地址对应的服务器发送请求,随后服务器会响应请求并且发送html页面,最后浏览器会解析发送过来的html页面展示出来,也就是我们看到的网页了
这里有两个重要概念,分别为 ‘请求’和 ‘响应’
请求(request):
请求是客户端发送给服务器的,
请求分为四部分:请求方法,请求的地址,请求头和请求体
了解详情点击此处
响应(response):
响应是服务器发送给客户端的,
响应分为三部分:状态码,响应头,响应体
了解详情点击此处
准备工作
本文使用requests模块
安装方法 :pip install requests 或者点击此处下载
数据获取方式
我们这里演示xpath解析方式用于解析html提取数据
pip install lxml
实例
本文拿百度首页进行演示
链接:https://www.baidu.com/
抓取按钮中的 " 百度一下" 四个字
导入模块
response就是返回的服务器响应
请求的一些方法 最常用的其实就只有 get 和 post 两种方法:
因为id是唯一的 所以我们可以直接xpath定位到id=‘su’的结点直接提取value
具体xpath解析语法请参照 xpath解析语法
完整代码
import requests
from lxml import etree
# 定制请求头
# 请求头,用来说明服务器使用的附加信息
headers = {
'Referer': 'https://www.baidu.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3641.400 QQBrowser/10.4.3284.400'
}
# 对https://www.baidu.com/发起get请求
response = requests.get('https://www.baidu.com/', headers=headers)
response.encoding = 'utf-8'
# 获取源码
sourceCode = response.text
# etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正
tree = etree.HTML(sourceCode)
# XPath 使用路径表达式来选取 XML 文档中的节点或节点集
# 提取input框中的value属性 也就是 '百度一下' 四个字
submitText = tree.xpath("//input[@id='su']/@value")
print(submitText)
那么第一篇博客就这样结束了,希望可以对你们有帮助,感谢阅读
PS:pycharm背景图片