web爬虫讲解—urllib库中使用xpath表达式—BeautifulSoup基础

在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块,然后将网页数据通过lxml下的etree转化为treedata的形式

urllib库中使用xpath表达式

etree.HTML()将获取到的html字符串,转换成树形结构,也就是xpath表达式可以获取的格式

#!/usr/bin/env python
# -*- coding:utf8 -*-
import urllib.request
from lxml import etree  #导入html树形结构转换模块

wye = urllib.request.urlopen('http://sh.qihoo.com/pc/home').read().decode("utf-8",'ignore')
zhuanh = etree.HTML(wye)  #将获取到的html字符串,转换成树形结构,也就是xpath表达式可以获取的格式
print(zhuanh)
hqq = zhuanh.xpath('/html/head/title/text()') #通过xpath表达式获取标题

#注意,xpath表达式获取到数据,有时候是列表,有时候不是列表所以要做如下处理
if str(type(hqq)) == "<class 'list'>":  #判断获取到的是否是列表
    print(hqq)
else:
    xh_hqq = [i for i in hqq]       #如果不是列表,循环数据组合成列表
    print(xh_hqq)

#返回 :['【今日爆点】你的专属资讯平台']

BeautifulSoup基础

BeautifulSoup是获取thml元素的模块

BeautifulSoup-3.2.1版本

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

web爬虫讲解—urllib库中使用xpath表达式—BeautifulSoup基础

参考资源链接:[Python后端爬虫开发深度解析:从基础到实战](https://wenku.youkuaiyun.com/doc/4xs7zqh5bo?utm_source=wenku_answer2doc_content) 在Python爬虫开发中,选择合适的网络请求和数据解析方法对于提升效率和准确性至关重要。urllib2和Requests是Python中常用的网络请求,各有特点。 urllib2是Python的标准之一,它支持基本的HTTP请求处理,包括GET和POST方法。它允许开发者对请求和响应进行更细致的控制,例如设置User-Agent、处理Cookies等。urllib2的缺点是相比Requests较难使用,编写代码相对复杂,不够直观。在需要较高可控性的场景下,如自定义HTTP请求头或处理特定的HTTP响应时,urllib2提供了更多的灵活性。 Requests则以其简洁的API和强大的功能受到许多开发者的喜爱。它内部使用urllib3进行网络通信,但对外提供了更为友好的接口。Requests的易用性是其显著优势,它自动处理了许多底层细节,如连接池管理和SSL证书验证。此外,Requests支持Cookie会话保持、文件上传、流处理等高级功能。但需要注意的是,虽然Requests在易用性方面有优势,但它不像urllib2那样可以很容易地进行扩展。 在数据解析方面,正则表达式是处理文本匹配和数据提取的强大工具,尤其适用于从非结构化文本中提取数据。其优点是灵活性高、执行效率好,但编写和维护复杂的正则表达式可能会比较困难,且容易出错。 XPath是一种在XML文档中查找信息的语言,同样适用于HTML文档。使用XPath可以通过简洁的表达式快速定位到HTML或XML文档中的特定节点或元素。与正则表达式相比,XPath的学习曲线相对平缓,但对于复杂的数据提取,可能需要构建较为复杂的表达式BeautifulSoup4是一个专门用于解析HTML和XML文档的,它提供了多种解析器,能够将复杂的HTML文档转换为Python中的数据结构,从而方便数据提取。BeautifulSoup的接口简洁,易于使用,适合初学者快速上手。但它的性能较XPath和正则表达式差,对于非常大的文档或复杂的数据提取任务,可能效率不高。 综上所述,在选择网络请求时,如果项目对网络请求的可控性有较高要求,可以优先考虑urllib2;如果追求开发效率和易用性,则Requests更为合适。在数据解析方面,对于简单的文本数据提取任务,正则表达式可能是最佳选择;对于需要从复杂结构的HTML中提取数据的场景,BeautifulSoup提供了便利的接口;而对于需要精确控制节点选择的复杂任务,XPath则更为适合。 参考资源链接:[Python后端爬虫开发深度解析:从基础到实战](https://wenku.youkuaiyun.com/doc/4xs7zqh5bo?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值