1、爬虫是什么
简单的来说:就是用程序获取网络上数据。
2、爬虫的原理
如果要获取网络上数据,我们要给爬虫一个网址(程序中通常叫URL),爬虫发送一个HTTP请求给目标网页的服务器,服务器返回数据给客户端(也就是我们的爬虫),爬虫再进行数据解析、保存等一系列操作。
3、爬虫基本流程
用户获取网络数据的方式:
方式1:浏览器提交请求--->下载网页代码--->解析成页面
方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
爬虫要做的就是方式 2。
3.1、发起请求
使用http库向目标站点发起请求,即发送一个Request
Request包含:请求头、请求体等
Request模块缺陷:不能执行JS 和CSS 代码
3.2、获取响应内容
如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等
3.3、解析内容
解析html数据:正则表达式(RE模块)、xpath(主要使用)、beautiful soup、css
解析json数据:json模块
解析二进制数据:以wb的方式写入文件
3.4、保存数据
数据库(MySQL,Mongdb、Redis)或 文件的形式。
4、爬虫代码
python
# 导入requests模块,设置 url为百度翻译网页的网址。
import requests
def English_Chinese():
url = "https://fanyi.baidu.com/sug"
s = input("请输入要翻译的词(中/英):")
dat = {
"kw":s
}
resp = requests.post(url,data = dat)# 发送post请求
ch = resp.json() # 将服务器返回的内容直接处理成json => dict
resp.close()
dic_lenth = len(ch['data'])
for i in range(dic_lenth):
print("词:"+ch['data'][i]['k']+" "+"单词意思:"+ch['data'][i]['v'])
主要使用requests库
5、学习资源与经验总结
学习爬虫需要掌握以下几个方面:
- 编程语言:Python是目前最常用的爬虫语言,因此需要掌握Python的基本语法和常用的库。
- 基础知识:需要了解计算机网络的基本知识,包括HTTP协议、TCP/IP协议、DNS协议等。
- 爬虫框架:学习使用一些爬虫框架,如Scrapy、BeautifulSoup等,可以加快爬虫的开发速度。
- 浏览器抓包:学习使用抓包工具,如Fiddler、Wireshark等,可以帮助理解网站的数据传输过程。
- 反爬机制:了解网站的反爬机制,如封IP、封账号、封代理等,可以帮助避免被网站禁止访问。
- 数据清洗:学习使用数据清洗工具和方法,如正则表达式、BeautifulSoup等,可以帮助处理不同格式的数据。
- 法律法规:了解相关法律法规,如个人信息保护法、知识产权法等,避免侵犯他人的合法权益。
另外:
- python学习路线:很多网站都有免费的学习路径,这里不在赘述,例如python学习路线
- 很多网站对IP的要求很高,短时间请求十几次就会遭关进小黑屋。明显是网站进行了反爬处理:限制IP请求频率。这个时候,我们只有加代理进行访问请求了。这里推荐一款最近发现的代理商家:协采云IP池
如果大量访问某个网站,一个稳定的代理访问是必不可少的。