Python爬虫之bs4与xpath简单理解

bs4:

bs4对应英文为Beautiful Soup,美丽的汤,不知道为啥取这名。

bs4在使用前需要下载,在终端中使用pip install bs4即可

pip install bs4

bs4用来 从网页里面提取数据,可以导航网页中的数据以及进行搜索与修改分析等。相比xpath简洁明了不少。

bs4自动将输入文档转换为unicode编码,输出文档转换为utf-8编码。

直接上栗子:

#导入所需的库
import requests
import bs4
#选择要抓取的网页
url = 'https://movie.douban.com/top250'
resp = requests.get(url,headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52'})
#创建一个BeautifulSoup对象
soup = bs4.BeautifulSoup(resp.text,'html.parser')#这里不创建文档来显示最终数据,直接将数据在python中输出
#div是数据所在标签,class是数据属性,这里使用class_是为了区分python中的class
targets = soup.find_all('div',class_='hd')#使用find_all查找所有目标内容
for each in targets:
    print(each.a.span.text)

使用一个爬取豆瓣电影排行榜的例子来掌握bs4的简单使用

bs4.BeautifulSoup(resp.text,'html.parser')这里有两个参数,一个是resp.text,也就是我们所需的数据文本内容,第二个参数是html.parser

html.parser是bs4自带的解析器,直接用就好

运行效果:

肖申克的救赎
霸王别姬
阿甘正传
泰坦尼克号
这个杀手不太冷
美丽人生
千与千寻
辛德勒的名单
盗梦空间
星际穿越
楚门的世界
忠犬八公的故事
海上钢琴师
三傻大闹宝莱坞
机器人总动员
放牛班的春天
无间道
疯狂动物城
大话西游之大圣娶亲
控方证人
熔炉
教父
当幸福来敲门
触不可及
怦然心动

关于bs4还有许多内容,只能以后再学了(狗头)

xpath:

xpath用来在HTML中查找信息,关于HTML还有一些简单介绍:

在HTML中有许多节点,每个节点下又有许多子节点,上一个节点称下一个的父节点,同一等级之间叫同胞节点

xpath同样需要在python中下载第三方库,与bs4一样在终端中使用如下命令

pip install lxml

xpath用法:

首先构造出etree对象

form lxml import etree

例如我们要提取book节点下的nick里面的内容只需:
 

tree = etree.XML(xml)
res = tree.xpath('/book/nick/text()')

HTML语言相当于xml文档的子集

在使用python进行网页数据提取时使用xpath非常好用。

在网页中如何使用xpath:

首先在网页中右键,打开检查,然后使用ctrl+f打开xpath进行查找

 

 

Python爬虫中的bs4xpath是两种常用的数据提取工具。 bs4(Beautiful Soup 4)是一个基于Python的库,用于解析HTML和XML文档。它能够帮助我们从网页中提取数据并进行处理。bs4提供了一些简单且易于使用的方法,例如通过标签名、类名、属性等进行查找和筛选数据。 下面是一个简单的使用bs4进行数据提取的例子: ```python from bs4 import BeautifulSoup import requests # 发送HTTP请求获取页面内容 url = "http://example.com" response = requests.get(url) html_content = response.content # 使用bs4解析页面内容 soup = BeautifulSoup(html_content, 'html.parser') # 提取数据 title = soup.title.text print("网页标题:", title) # 查找某个标签并获取其文本内容 h1 = soup.find("h1") print("h1标签内容:", h1.text) # 查找所有的链接并输出链接文本和URL links = soup.find_all("a") for link in links: print("链接文本:", link.text) print("链接URL:", link["href"]) ``` 另一方面,XPath是一种用于选择XML文档中节点的语言。在爬虫中,我们可以使用XPath来从HTML或XML文档中提取数据。XPath提供了强大且灵活的选择器,可以使用路径表达式来定位节点。 下面是一个使用XPath进行数据提取的示例: ```python import requests from lxml import etree # 发送HTTP请求获取页面内容 url = "http://example.com" response = requests.get(url) html_content = response.content # 使用lxml解析页面内容 tree = etree.HTML(html_content) # 提取数据 title = tree.xpath("//title/text()")[0] print("网页标题:", title) # 查找某个标签并获取其文本内容 h1 = tree.xpath("//h1/text()")[0] print("h1标签内容:", h1) # 查找所有的链接并输出链接文本和URL links = tree.xpath("//a") for link in links: link_text = link.xpath("text()")[0] link_url = link.xpath("@href")[0] print("链接文本:", link_text) print("链接URL:", link_url) ``` 以上就是使用bs4XPath进行数据提取的示例代码。希望能帮助到你!如有需要,请随时追问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值