总述
爬虫主要用于互联网数据的有效收集,例如各地区房价的数据、各地区人均收入的统计、以及视频评分的统计等。收集的数据后用来进行数据分析。
主要库介绍
- requests 顾名思义可以看出这是一个http的请求库,主要用于网站数据的请求下载。
import requests
#请求数据
requests.get(url) #请求数据下发,此处由于有些网站有放爬虫机制,可以改变header模拟浏览器
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
}
response = requests.get( url , headers=headers)
#获取数据
response.text #解码后的文本
response.content #网络传输的二进制数据,例如一个api请求图片下载可以用着来保存到本地文件
- BeautifulSoup(bs4) 解析html页面数据
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text,'lxml') #第二参数为解析引擎可以更改
#常用方法
soup.find("li" , class_ = "list-item") #第一个参数html标签,第二个参数css类,查找到一个结束
soup.findall()#与上同,搜索所有满足条件的对象
soup.select("")
'''
'.类名' css类查找
'#id' 标签id查找
'标签 #id(包括子标签)
'父标签 > 子标签' 层级查找
'''
- re 正则
import re
rule = re.compile("") #建立规则
'''
{} 长度
^ 开头
\d 表明整数
\w表明包含下划线的字母
[^xyz] 匹配未被包含的任意字符
\s 匹配空格符
\S 匹配非空格字符串
() 表明一组,正则也按分组返回
?P<""> 分组命名
'''
re.findall(rule, obj_str)
- pandas
爬取到数据可以保存到数据库去,例如:mysql,MongoDB,为了方便此处保存到csv文件。
import pandas as pd
'''
analyse_array_1 = [] #假设此处为采集到的数据
analyse_array_2 = [] #假设此处为采集到的数据
analyse_array_3 = [] #假设此处为采集到的数据
#合并
analyse_array = zip(analyse_array_1,analyse_array_2,analyse_array_2)
'''
#转换pandas数据格式
pd_csv_data = pd.DataFrame(analyse_array ,columns =["c1", "c2", "c3"])
#保存
pd_csv.to_csv(csv_path, index=False , encoding="gb18030")