爬虫导图
2023-11-23 16:05:32 15 举报
AI智能生成
非商业用途
作者其他创作
大纲/内容
数据解析
正则表达式
常见正则表达式符号
贪婪匹配(默认):.*
懒惰匹配:.*?
bs4
实例化BeautifulSoup
from bs4 important BeautifulSoup
soup = BeautifulSoup( page_text, 'lxml' )(打开的html文件)
BeautifulSoup方法和属性
soup.tagName(第一个标签名)
soup.find( tagName, class_ )(默认第一个标签名)
soup.find_all( tagName) (所有标签)
soup.select( ) (ID,class,标签等选择器,win系统不可用)
xpath
实例化etree对象
from lxml import etree
tree = etree.HTML( page_text )
tree = etree.parse( filePath )(本地html路径)
r = tree.xpath( xpath表达式 )
xpath表达式
/ 的两种含义
// 的两种含义
[@ ] 查找带属性的标签
@ 查找属性
./ 局部数据解析
| 或表达式
element对象转化文本
/text 直系内容转化
//text 所有内容转化
r此时为element对象
五步骤
step1.指定url
step2.发起请求
step3.获取响应数据
step4.数据解析
step5.持久化存储
原理
step1.指定标签定位
step2.提取标签或标签属性值
文件处理
os包
删除:os.remove( )
检验存在:os.exists( )
创建文件/文件夹:os.mkdir( )
删除文件夹:os.rmdir( )
删除文件夹及子目录:shutil.rmtree( )
(需要导shutil包)
文件打开
open/close
with open
数据处理
json对象:.json( )
存储:json.dump( obj, fp, ensure_ascii=True )
读取: json.loap( fp )
Python转json: json.dumps( obj )
json转Python: json.loads( str )
jpg对象(二进制):.content
html对象:
所有文本:.text
直系文本:.string
中文乱码
响应数据修改编码
response.encoding = 'utf-8' / 'gbk'
局部数据乱码修改
name = name.encode( iso-8859-1 ).decode( 'gbk')
爬虫简介
robots.txt协议
君子协议规定内容可否进行爬取
http协议
响应头:
Content-Type(响应数据类型)
请求头:
User-Agent
UA检测
UA伪装
Cookie
Referer
Connection(请求完毕后是否断开链接)
https协议
对称密钥加密
非对称密钥加密
证书密钥加密
requests模块
get请求
requests.get(url, params, headers)
返回状态为text/html
post请求:
requests.post(url, data, headers)
返回状态为json(text/plain)
ajax请求
四步骤
step1.指定url
step2.发起请求
step3.获取响应数据
step4.持久化存储
0 条评论
下一页