「python爬虫保姆级教学」urllib的使用以及页面解析

「python爬虫保姆级教学」urllib的使用以及页面解析,第1张

使用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 https://pypi.douban.com/simple

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

soup = BeautifulSoup(open('soup.html', encoding='utf8'), 'lxml')

soup.a 只能查找得到第一个符合要求的节点,是一个对象,bs4自己封装类的对象

soup.a.attrs获取得到所有属性和值,是一个字典

soup.a.attrs['href'] 获取指定的属性值

soup.a['href'] 简写形式

soup.a.string

soup.a.text

soup.a.get_text()

soup.find_all('a') 找到所有a

soup.find_all('a', limit=2) 提取符合要求的前两个a

soup.find_all(['a', 'li']) 查找得到所有的a和li

soup.find_all('a', class_='xxx') 查找得到所有class是xxx的a

soup.find_all('li', class_=re.compile(r'^xiao'))

查找所有的class以xiao开头的li标签

id选择器 #dudu

类选择器 .xixi

标签选择器div a h1

div #dudu .xixi a

空格:代表后面的节点是前面节点的子节点或者子孙节点

div >#dudu >a >.xixi


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11359393.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存