Python爬虫(入门版)

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、学习资源与经验总结

学习爬虫需要掌握以下几个方面:

  1. 编程语言:Python是目前最常用的爬虫语言,因此需要掌握Python的基本语法和常用的库。
  2. 基础知识:需要了解计算机网络的基本知识,包括HTTP协议、TCP/IP协议、DNS协议等。
  3. 爬虫框架:学习使用一些爬虫框架,如Scrapy、BeautifulSoup等,可以加快爬虫的开发速度。
  4. 浏览器抓包:学习使用抓包工具,如Fiddler、Wireshark等,可以帮助理解网站的数据传输过程。
  5. 反爬机制:了解网站的反爬机制,如封IP、封账号、封代理等,可以帮助避免被网站禁止访问。
  6. 数据清洗:学习使用数据清洗工具和方法,如正则表达式、BeautifulSoup等,可以帮助处理不同格式的数据。
  7. 法律法规:了解相关法律法规,如个人信息保护法、知识产权法等,避免侵犯他人的合法权益。

另外:

  1. python学习路线:很多网站都有免费的学习路径,这里不在赘述,例如python学习路线
  2. 很多网站对IP的要求很高,短时间请求十几次就会遭关进小黑屋。明显是网站进行了反爬处理:限制IP请求频率。这个时候,我们只有加代理进行访问请求了。这里推荐一款最近发现的代理商家:协采云IP池

如果大量访问某个网站,一个稳定的代理访问是必不可少的。

相关推荐
月落.1 分钟前
C#中的报文(Message)
开发语言·c#
计算机编程-吉哥3 分钟前
计算机毕业设计 基于Python的音乐平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·课程设计·毕业论文·计算机毕业设计选题·音乐平台
算法与编程之美7 分钟前
通过两个类计算一个长方形的周长和面积
java·开发语言·javascript·jvm·servlet
踏过山河,踏过海12 分钟前
在Windows系统上安装的 Arrow C++ 库
开发语言·c++
qzy062113 分钟前
C++启动其它进程的方式
开发语言·c++
苦瓜想干飞日本14 分钟前
c++与Python用笛卡尔的心形函数输出爱心
开发语言·python
Ajiang282473530415 分钟前
C++中的string类
开发语言·c++
sukalot22 分钟前
windows C++-计划组
开发语言·c++·windows
凯子坚持 c24 分钟前
影刀---实现我的第一个抓取数据的机器人
人工智能·python·机器学习
wwangxu27 分钟前
C语言 编译和链接
c语言·开发语言