从0开始学python网络爬虫----------2

从0开始学python网络爬虫----------2

爬虫三大库

上一篇博客对库有了初步概念,接下来将对爬虫三大库深入了解

  1. 库的下载与使用
    1. 库的下载
      下载第三方库一般可以直接在命令提示符中输入pip install packagename其中packagename为要下载的库名。安装完成后会有提示:
      Successfully installed packagename
    2. 库的使用
      下载好库以后,我们就可以调用库格式为:import packagename
  2. Requests库
    requests库的官方文档指出:让HTTP服务人类,细心的读者会发现requests库的作用就是请求获取网页数据
    请求头的使用
import requests#导入模块(也叫库)
#headers为请求头的一部分
headers={'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52'}
url='https://blog.csdn.net/PXXPY/article/details/107594925'#请求网址
response=requests.get(url=url,headers=headers)#发送请求
print(response)#返回状态码
print(response.text)#打印源代码

request库不仅有get()方法还有post()方法。post()方法用于表单提交来爬取需要登录才能获取的数据,这部分会在后面讲述,学习get()方法足够我们爬取大部分网站了
3. BeautifulSoup库
BeautifulSoup库是一个非常流行的python模块,通过BeautifulSoup库可以轻松的解析Rquests库请求的数据,并把网页源代码解析为Soup文档以便过滤提取数据


from bs4 import BeautifulSoup
import requests

 
url='http://bj.58.com/pingbandiannao/24604629984324x.shtml'
 
response = requests.get(url)
soup = BeautifulSoup(response.text,'html.parser')

BeautifulSoup库除了支持python标准库中的HTML解释器外还支持第三方解释器

解释器使用方法优点缺点
python标准库BeautifulSoup(response.text,‘html.parser’)执行速度适中,容错强python3.2.2以前的版本中容错能力差
lxml HTML解析器BeautifulSoup(response.text,‘lxml’)速度快,容错强需要安装C语言库
Lxml XML解析库BeautifulSoup(response.text,‘xml’)速度快,唯一支持XML的解析器需要安装C语言库
html5libBeautifulSoup(response.text,’‘html5lib)最好容错性,以浏览器的方式解析文档,生成HTML5格式的文档速度慢,不依赖外部拓展

BeautifulSoup库官方推荐使用lxml作为解释器,应为效率更高
解析的Soup文档可以使用find()和fond_all()方法及selector()方法定位所需要的元素。find()和find_all()两个方法用法相似,BeautifulSoup文档中对这两个方法的定义是:
** find_all(tag,attibutes,recursive,text,limit,keywords)
find(tag,attibutes,recursive,text,keywords)**

c常用前两个参数

  1. find_all()方法
soup.findall('div',"item")#查找div标签,class="item"
soup.findall('div',class="item")
soup.findall('div',attrs={"class":"item"})#attrs定义一个字典参数来搜索包含特殊属性的tag
  1. find()方法
    find()方法与find_all()方法相似,只不过find()方法只返回一个符合条件的数据,而find_all()方法返回所有符合条件的数据,是一个集合
  2. selector()方法
soup.selector('body > div.m-body > div:nth-child(3) > div > div > ul > li:nth-child(6) > a')#括号中的内容由浏览器复制得到

在这里插入图片描述
该方法类似于中国>四川>成都>…
3. Lxml库
Lxml库是基于libxml2这一个XML解析库的python封装,使用C语言编写,解析速度比BeautifulSoup更快

当然这些库全是第三方库,需要pip下载哟~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值