python解析网页用什么库(python爬虫html解析器)
「python爬虫保姆级教学」urllib的使用以及页面解析
使用urllib来获取百度首页的源码
get请求参数,如果是中文,需要对中文进行编码,如下面这样,如果不编码会报错。
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爬虫用什么库
以下是爬虫经常用到的库
请求库
1. requests
requests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看Python之Requests库 ,大家可以去看一下。
2.urllib3
urllib3是一个非常强大的http请求库,提供一系列的操作URL的功能。
3.selenium
自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
对于这个库并非只是Python才能用,像JAVA、Python、C#等都能够使用selenium这个库
4.aiohttp
基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。
这个属于进阶爬虫时候必须掌握的异步库。有关于aiohttp的详细操作,可以去官方文档:
Python学习网- 专业的python自学、交流公益平台!
解析库
1、beautifulsoup
html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。一个我经常使用的解析库,对于html的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。
2、lxml
支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。
3、pyquery
jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。
数据存储
1、pymysql
官方文档:
一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。
2、pymongo
官方文档:
顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。
3、redisdump
redis-dump是将redis和json互转的工具;redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby。
python爬虫需要安装哪些库
一、 请求库
1. requests
requests 类库是第三方库,比 Python 自带的 urllib 类库使用方便和
2. selenium
利用它执行浏览器动作,模拟操作。
3. chromedriver
安装chromedriver来驱动chrome。
4. aiohttp
aiohttp是异步请求库,抓取数据时可以提升效率。
二、 解析库
1. lxml
lxml是Python的一个解析库,支持解析HTML和XML,支持XPath的解析方式,而且解析效率非常高。
2. beautifulsoup4
Beautiful Soup可以使用它更方便的从 HTML 文档中提取数据。
3. pyquery
pyquery是一个网页解析库,采用类似jquery的语法来解析HTML文档。
三、 存储库
1. mysql
2. mongodb
3. redis
四、 爬虫框架scrapy
Scrapy 是一套异步处理框架,纯python实现的爬虫框架,用来抓取网页内容以及各种图片
需要先安装scrapy基本依赖库,比如lxml、pyOpenSSL、Twisted
python 最好的 网页分析库 有哪些
1.Beautiful Soup在java里用过,还成,偶尔解析不到。 简单。
2.python自带了一个SGML的解析。那个小模块略略改一改应该很好用的。我以前用它做过畸形校正模块。效率一般。
3.大多数情况下我都是用re库,正则表达式直接解析,简单直接易用。用好了速度最快。经常用来搭建服务端的高效处理过滤器。
Python解析库lxml与xpath用法总结
本文主要围绕以xpath和lxml库进行展开:
一、xpath 概念、xpath节点、xpath语法、xpath轴、xpath运算符
二、lxml的安装、lxml的使用、lxml案例
一、xpath
1.xpath概念
XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式在 XML 文档中进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。
2.xpath节点
xpath有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
节点关系:父、子、兄弟、先辈、后辈。
3.xpath语法
xpath语法在W3c网站上有详细的介绍,这里截取部分知识,供大家学习。
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
XPath 通配符可用来选取未知的 XML 元素。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
通过在路径表达式中使用"|"运算符,您可以选取若干个路径。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
4.xpath 轴
轴可定义相对于当前节点的节点集。
5.xpath运算符
下面列出了可用在 XPath 表达式中的运算符:
好了,xpath的内容就这么多了。接下来我们要介绍一个神器lxml,他的速度很快,曾经一直是我使用beautifulsoup时最钟爱的解析器,没有之一,因为他的速度的确比其他的html.parser 和html5lib快了许多。
二、lxml
1.lxml安装
lxml 是一个xpath格式解析模块,安装很方便,直接pip install lxml 或者easy_install lxml即可。
2.lxml 使用
lxml提供了两种解析网页的方式,一种是你解析自己写的离线网页时,另一种 则是解析线上网页。
导入包:
1.解析离线网页:
2.解析在线网页:
那么我们怎么获取这些标签和标签对应的属性值了,很简单,首先获取标签只需你这样做:
然后我们可以,比方说,你要获取a标签内的文本和它的属性href所对应的值,有两种方法,
1.表达式内获取
2.表达式外获取
这样就完成了获取,怎么样,是不是很简单了,哈哈哈。
下面再来lxml的解析规则:
3.lxml案例
为了偷懒,我决定还是采用urllib那篇文章的代码,哈哈哈,机智如我。