一、爬虫学习
网络爬虫:是指按照一定的规则,自动抓取互联网信息的程序或者脚本。
1.requests 的使用:
(1) requests的作用:请求页面,并获取页面的内容
代码如下:
url = ' #请求网页地址# '
r = requests.get(url)
(2) 发送headers的请求:
①为什么要发送带headers的请求?
发送带headers的请求的目的就为了模仿浏览器访问网页,获取和浏览器一致的内容。
②那headers从何而来呢?
在浏览器上面,按F12,点击network,找到我们所需要的爬取的数据,点击Headers。
代码如下:
url = ' https://data.eastmoney.com/zjlx/000032.html ' headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/96.0.4662.6 Safari/537.36', }
response = requests.get(url=url, headers=headers)
page_text = response.text #发送url链接的请求,并返回响应数据
通过以上代码对浏览器的网站数据进行爬取,对于有些网页有反爬手段,我们这里选择的是容易爬取的东方财富网。
2.正则表达式的使用:
对于我们爬取了的数据,需要进行提取与分割:
导入 re 包,其中包含了正则表达式以及函数split,compile等等
import re
pat = '"klines":\[(.*?)\]' #正则表达式
data = re.compile(pat, re.S).findall(page_text) #匹配正则表达式查找
datas = data[0].split('","') #对查找的数据进行分割
通过以上代码我们就可以实现对数据的整理处理,得到自己想要的数据,如下:
我们发现数据为一行数据,为了存储到MySQL中,我们利用for循环对数据进行再一次处理:
#通过for循环对数据再进行处理分割一行相同类型数据
for i in range(len(datas)):
stock = list(datas[i].replace('"', "").split(","))
通过一系列的处理,网页的数据变成了我们期待的样子,再通过第五章的连接MySQL,将我们的数据导入到MySQL中:
总结:
爬虫学习刚入门时发现有一定难度,但当真正搞懂爬虫操作也受益匪浅,发现爬虫的乐趣。通过爬虫的学习可以对网页,图片,数据进行批量化提取操作,省去了许多人工操作,其中更加深层的内容还需要深入学习。