自学Python爬虫---简记

本文详细介绍Python中字符串处理方法,如split、replace等,以及文件操作如open、read、write。深入讲解三大爬虫库:Requests用于网页内容获取;BeautifulSoup结合lxml解析网页;re模块进行正则表达式匹配。涵盖爬虫核心步骤与技巧,如headers设置、正则模式修饰符、XPath语法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 字符串方法:
函数作用
对象.split(‘符号’)通过指定的符号 分隔字符串
对象.replace(‘目标’,‘替换’)指定将字符串中目标改为替换
对象.strip(‘符号’)返回除去两侧指定符号的字符串
对象.format(‘内容’)替换字符串中{}的部分
  1. 文件操作:
函数作用
open(‘地址’)打开地址指定文件( ‘r’ 读模式 ‘w’ 写模式’a’ 追加模式 ‘b’ 二进制模式 ‘+’ 读/写模式 )
对象.write()写入数据
对象.read()读取数据
对象.close()关闭文件
  1. 爬虫三大库:
    [1]
    Requests:
关键步骤用处
get()分析获取网页内容
post()同上(比较好用)
text()返回文本
headers取值于网页的 user-agent ( F12->network->XHR)

[2]
BeautifulSoup:
一、四种解析器:
1.ltml.parser(Python 标准库)。
2.lxml(lxml HTML解析器)。(推荐 快,容错强)
3.xml(Lxml Xml解析器)。
4.html5lib(html5lib)。

函数作用及用法
BeautifulSoup(requests对象.text,解析方式)解析对象
对象.prettify()查看解析结果
对象.find(tag,attibutes,recursive text,limit,keywords)返回一个符合的值 对象.find_all(‘div’,‘item’)#查找div标签,class=“item”
对象.find_all(tag,attibutes,recursive,text,keywords)返回所有符合的值
对象.select()括号内容通过Chrome复制得到(点击想要的地方 检查->copy select(右键copy)

**get_text() 获取文字信息
**zip(参数) 将参数打包成元组 返回元组列表
**li:nth-child(1)在Python中会报错!改为li:nth-of-type(1)
[3]
re模块:

基础字符作用
.匹配任意单个字符(不包括\n)
\转移字符(和c++差不多)
[]字符集 (a[bs]:ab as)
预定义字符作用
\d(\D)匹配一个数字(非数字)字符
\s(\S)匹配任何空白(非空白)字符
\w(\W)匹配任何单词(非单词)字符
数量词匹配前一个字符的次数
*0或无限
+1或无限
0或1
[m]m
[m,n]m至n
常用符作用
()表示括号的内容作为返回结果
.*?表示匹配任意字符
相关函数作用实例
search()函数匹配并提取第一个符合规律的内容re.search(pattern(匹配正则算法),string(目标字符串),flags(匹配方式))
sub()函数替换字符串中的匹配项re.sub(pattern,rep1(替换字符串),string,count(替换次数 0:全部),flags=0)
findall()函数匹配所有符合的内容,以 列表 的形式返回结果 收集数据找到相同的格式 搜索!!!对象.content.decode(‘utf-8’) :将文本转化为该编码形式

[4]
re匹配模式修饰符

修饰符作用
re.I是匹配对大小写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多行匹配,影响^和$
re.S使匹配包括换行在内的所有字符(在它眼中没有换行)
re.U根据Unicode字符集解析字符,影响 \w,\W,\b,\B
re.X该标志通过给予更灵活的格式,以便正则表达式写得更易理解,利用正则方式更容易获取网页文档中爬取的内容

[5]
Xpath语法

  1. 父节点
  2. 子节点
  3. 同胞节点
  4. 先辈节点
  5. 后代节点
结点选择表达作用案例
对象节点名字选取此节点的所有子节点user_database
/从根节点选取/user_database
//选取匹配当前节点的所有子节点(忽视位置)//user
.选取当前结点
选取当前结点的父节点
@选取属性//li[@atrribute=‘属性’] 选取所有li含atrtibute属性

[6]
三大爬虫操作示范

import requests
import re
from bs4 import BeautifulSoup
from lxml import etree
import time
header={''}
url='网址'
r=requests.get(url,headers=header)

#正则 爬取信息
content=re.findall(html标头查找+正则表达式,r.text,re.格式)
	
#BeautifulSoup 爬取信息
s=BeautifulSoup(r.text,'lxml'(解析方式可以更换))
content=s.select('copy selector修改路径')

#lxml
e=etree.HTML(r.text)
#会运用到一些正则的方法获取 例:'//div[@class=""]'
content=e.xpath('copy Xpath修改路径/text()(获取文本)')	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值