1.什么是爬虫?
网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人
本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!
- 其实通俗的来讲,本质上爬虫就是自动化的程序,自动化模拟人的操作。比如在网站上下载小说,下载图片,下载视频等等。如果让你本人下载
1-2
张图片可能很容易,但是如果让你下载100
张甚至10000
张图片的话,就一定会发狂了。所以就交给自动化的爬虫来帮你下载10000
张图片!解放你的双手~
2.浏览器获取数据过程
- 浏览器向服务等发送
http
,request
请求 - 服务器响应
response
- 浏览器
解析数据
- 展示给用户
3.Rquest 和 Response
-
Request
包含内容
1.请求方式通常有Get
Post
Put
Delete
2.请求URL
3.请求头
4.请求体 -
来请求一些伊洛的个人博客 https://yiluotalk.com
-
点击
Network
,查看headers
-
注意一般服务器会对请求数据做校验,一般在请求头里面需要加
user-agent
-
Response
包含内容
1.响应状态 ,状态码
2.响应头response
headers
3.响应体信息 -
来看一下伊洛博客的返回
-
返回的是
html
页面
4. 爬虫的过程
- 通过上面我们已经比较清楚了,浏览器请求服务器到服务器响应,浏览器解析展示给用户的简单过程,那么我们爬虫的话大概分几步呢
通常来说分为四个步骤 - 1.爬取数据 发起
http
请求 (来用python
代码演示下)
可能需要爬取的数据是会有Html文档
,Json格式文本
,图片
,视频
,等
# 伊洛Yiluo
# https://yiluotalk.com
>>> import requests
>>> r = requests.get("https://yiluotalk.com")
>>> print(r.status_code)
200
- 2.获取响应内容
如上获取了响应的状态码为200
- 3.解析内容
解析的方式可能有很多种,后续展开讲述下
- 直接处理
Json
解析正则表达式
- 有很多好用的第三方库,比如
BeautifulSoup
pyquery
scrapy
还有xpath
也可以
# 伊洛Yiluo
# https://yiluotalk.com
print(r.text)
- 响应的是
html
文件
5.保存数据
- 保存数据一般分为以下几种,后续展开来讲
纯文本
,Json
Xml
,关系形数据库(Mysql)
,非关系型数据库(Mongodb)
,二进制文件
等
5. 找不到要爬取的数据
由于一些网站的页面是动态获取的,所以最后你看到的页面可能是通过js渲染
出来的,那么怎么来处理呢,简单的可以分为
1.分析ajax
请求,json
格式字符串
2.selenium
webdriver
浏览器驱动
3.splash
4.pyv8
,ghost8
- 这里先简单的介绍下模拟人工浏览器的方式,也就是
WEB自动化测试
经常用到的,selenium
,可以翻下伊洛之前介绍selenium
webdriver
自动化测试的的相关文章 - 依旧是访问 https://yiluotalk.com
- 输入网址
- 这样通过浏览器驱动的方式访问的就会正确的获得响应的所有信息
欢迎下方【戳一下】【点赞】
Author:伊洛Yiluo
愿你享受每一天,Just Enjoy !