爬虫项目实战:
分布式爬虫+ Elasticsearch 打造搜索引擎
「python爬虫保姆级教学」urllib的使用以及页面解析使用urllib来获取百度首页的源码
get请求参数python爬虫常用函数,如果是中文python爬虫常用函数,需要对中文进行编码,如下面这样,如果不编码会报错 。
urlencode应用场景:多个参数的时候 。如下
为什么要学习handler?
为什么需要代理?因为有的网站是禁止爬虫的,如果用真实的ip去爬虫,容易被封掉 。
2.解析技术
1.安装lxml库
2.导入lxml.etree
3.etree.parse() 解析本地文件
4.etree.HTML() 服务器响应文件
5.解析获取DOM元素
1.路径查询
2.谓词查询
3.属性查询
4.模糊查询
5.内容查询
6.逻辑运算
示例:
JsonPath只能解析本地文件 。
pip安装:
jsonpath的使用:
示例:
解析上面的json数据
缺点:效率没有lxml的效率高
优点:接口设计人性化,使用方便
pip install bs4 -i
from bs4 import BeautifulSoup
1.根据标签名查找节点
soup.a.attrs
2.函数
find(‘a’):只找到第一个a标签
find(‘a’, title=‘名字’)
find(‘a’, class_=‘名字’)
find_all(‘a’) :查找到所有的a
find_all([‘a’, ‘span’]) 返回所有的a和span
find_all(‘a’, limit=2) 只找前两个a
obj.string
obj.get_text()【推荐】
tag.name:获取标签名
tag.attrs:将属性值作为一个字典返回
obj.attrs.get(‘title’)【常用】
obj.get(‘title’)
obj[‘title’]
示例:
使用BeautifulSoup解析上面的html
python爬虫---爬取LOL云顶之弈数据本来是想爬取之后作最佳羁绊组合推算python爬虫常用函数 , 但是遇到知识点无法消化(知识图谱)python爬虫常用函数 , 所以暂时先不组合了 , 实力有限
库python爬虫常用函数的安装
1.requests#爬取棋子数据
2.json#棋子数据为js动态 , 需使用json解析
3.BeautifulSoup
实战前先新建个lol文件夹作为工作目录,并创建子目录data,用于存放数据 。
1.爬取数据,新建个py文件,用于爬取云顶数据 , 命名为data.py
1.1定义个req函数,方便读取 。//需设定编码格式,否则会出现乱码
def Re_data(url):
re = requests.get(url)
re.encoding = 'gbk'
data = https://www.04ip.com/post/json.loads(re.text)
return data['data']
1.2定义个Get函数,用于读取数据并使用保存函数进行保存数据,保存格式为json 。
def Get_data():
# 获取数据并保存至data目录
base_url = ''
chess = Re_data(base_url + 'chess.js')
race = Re_data(base_url + 'race.js')
job = Re_data(base_url + 'job.js')
equip = Re_data(base_url + 'equip.js')
Save_data(chess,race,job,equip)
【python爬虫常用函数 python爬虫常用语句】1.3定义save函数实现读取的数据进行文件保存,保存目录为工作目录下的data文件夹 。
def Save_data(t_chess,t_race,t_job,t_equip):
with open('./data/chess.json','w') as f:
json.dump(t_chess,f,indent='\t')
with open('./data/race.json','w') as f:
json.dump(t_race,f,indent='\t')
with open('./data/job.json','w') as f:
json.dump(t_job,f,indent='\t')
with open('./data/equip.json','w') as f:
json.dump(t_equip,f,indent='\t')
1.4定义主函数main跑起来
if __name__ == '__main__':
start = time.time()
Get_data()
print('运行时间python爬虫常用函数:' + str(time.time() - start) + '秒')
推荐阅读
- 电视字幕用什么红色的,电视字幕用什么字体
- 京凯公司ERP管理系统的实施,京凯科技有限公司
- 怎么搜索地区公众号好,怎么搜索地区公众号好友关注
- 羊城晚报新媒体工资如何,羊城晚报报业集团待遇
- mysql怎么联接表 mysql如何链接数据库
- 阿里云盘换手机了怎么下载,阿里云盘换绑手机
- 体育游戏真题,体育游戏试题
- mysql怎么跨库更新 mysql跨库更新数据
- csscontainer什么意思,css中的container