python爬虫通过xpath如何获取br下内容

本文介绍了一种使用Python爬虫结合XPath表达式的方法,有效地获取包含<br>标签在内的完整文本内容,通过实例演示了如何将获取到的内容转换为连续的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python爬虫通过xpath如何获取br下内容

 							<div class="content">
                                <span>
                                    早上,小姨子上门递给我一只兔子:“姐让我交给你的。"说完提着行李箱匆匆离开。<br/>
                                    ----------------------------------<br/>
                                    十一点,老婆在单位打来电话:“兔子收到了?”<br/>
                                    我:“嗯。”<br/>
                                    老婆:“妹妹出差让我们照看下,你给它喂点菜叶吧。"<br/>
                                    喂点菜叶?望着锅里的红烧兔肉我陷入了沉思。<br/>
                                    然后我往里面加了点香菜……<br/>
                                    晚十一点,小姨子打来电话,<br/>
                                    “姐夫姐夫,我兔兔咋样?还好吧?”<br/>
                                    我有点儿小心虚,急忙安慰:<br/>
                                    “还在我这儿,不过在锅里,被我给炖了。<br/>嗯……你别担心,它走的时候很安详。”
…

                                </span> 
                            </div>

如何获取span下的所有内容,包括 < br >下的内容。
代码如下:

			item["content"] = html.xpath("//div[@class='content']/span/text()")
			#主要部分,用""替换br
            item["content"] = [i.replace("\n","") for i in item["content"]]

获取结果是一个数组:

['早上,小姨子上门递给我一只兔子:“姐让我交给你的。"说完提着行李箱匆匆离开。', '----------------------------------', '十一点,老婆在单位打来电话:“兔子收到了?”', '我:“嗯。”', '老婆:“妹妹出差让我们照看下,你给它喂点菜叶吧。"', '喂点菜叶?望着锅里的红烧兔肉我陷入了沉思。', '然后我往里面加了点香菜……', '晚十一点,小姨子打来电话,', '“姐夫姐夫,我兔兔咋样?还好吧?”', '我有点儿小心虚,急忙安慰:', '“还在我这儿,不过在锅里,被我给炖了。', '嗯……你别担心,它走的时候很安详。']

再将数组转化为字符串即可,将上面第二句代码改为:

 item["content"] = "".join([i.replace("\n","") for i in item["content"]])
### 使用Python爬虫通过XPath抓取网页表格数据 为了实现这一目标,可以采用`lxml`库中的`etree`模块来处理HTML文档并执行XPath查询。以下是具体的方法: #### 导入必要的库 首先需要导入用于网络请求和解析HTML的库。 ```python import requests from lxml import etree ``` #### 发送HTTP请求获取页面源码 构建一个函数用来发送GET请求,并接收响应内容作为下一步操作的基础[^2]。 ```python def fetch_page(url): response = requests.get(url) if response.status_code == 200: return response.text else: raise Exception(f"Failed to load page {url}") ``` #### 解析HTML结构创建树形模型 将获得的HTML文本转换成可供XPath使用的DOM树状结构。 ```python html_content = fetch_page('http://example.com/table-page') tree = etree.HTML(html_content) ``` #### 定位表格元素并提取所需信息 假设要抓取的目标是一个标准的HTML `<table>`标签下的所有行(`<tr>`)及其列(`<td>`), 可以按照如下方式定义XPath路径: ```python rows = tree.xpath('//table/tr') # 获取所有的<tr> data = [] for row in rows: cols = row.xpath('.//td/text()') # 对每一行内部查找<td>, 并读取其纯文本值. data.append([col.strip() for col in cols]) ``` 上述代码片段会遍历每一个表格行,对于每行而言进一步访问其中的单元格,最终形成二维数组保存整个表的数据集[^3]。 #### 处理特殊标记如换行符或空白节点 当遇到像`<br/>`这样的内嵌标签时,简单的`.text()`可能无法捕捉到完整的可见文字串;此时应该先选取包含这些子元素在内的父级容器,之后再逐个抽取它们之间的文本部分[^4]: ```python special_cells = tree.xpath("//div[@class='contson']") cleaned_texts = [" ".join(cell.itertext()).strip() for cell in special_cells] ``` 此段脚本展示了怎样绕过直接调用`.text()`所带来的局限性,转而运用更灵活的方式收集复杂布局里的连续字符序列。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值