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池

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

相关推荐
Lizhihao_6 分钟前
JAVA-队列
java·开发语言
denghai邓海6 分钟前
红黑树删除之向上调整
python·b+树
远望清一色25 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
封步宇AIGC32 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
何曾参静谧33 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices37 分钟前
C++如何调用Python脚本
开发语言·c++·python
我狠狠地刷刷刷刷刷1 小时前
中文分词模拟器
开发语言·python·算法
wyh要好好学习1 小时前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech1 小时前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
qing_0406031 小时前
C++——多态
开发语言·c++·多态