lxml 笔记

参考教程 http://c.biancheng.net/python_spider/lxml.html

一 安装

1.pip 安装

c:\>pip3 install lxml

二 lxml功能介绍

1.ElementTree 和 Element

1.0 提前总结

类型说明
ElementTree代表着xml html的整个文档
1.文档
2.root
3.文档其他结构
Element一个元素
生成节点函数名功能
etree.XML(字符串,parser=etree.XMLParser())生成element对象
etree.HTML(字符串,parser=etree.HTMLParser())生成element对象
1.校正格式,封闭标签
2.一步就生成到顶部的html标签

生成tree
tree.getroot() 可以得到根节点

产生tree的方法
1.tree = etree.ElementTree(root)
2.tree = etree.parse(filename)

1.1 XML:从字符串str ->新建节点 Element -> 并作为root节点生成树ElementTree

使用etree.XML(’ str ') 产生xml对象

import lxml.etree as etree

#1. 新建root节点 Element类型  
root = etree.XML('''  # XML用来生成节点
        <root>
        <a>aaa</a>
        </root>
        ''')
        
#2. 从节点新建ElementTree = 文档(文档说明 + root )
tree = etree.ElementTree(root)
print('root',type(root),'\n',root)
print('tree',type(tree),'\n',tree)

#3. 结果 
root <class 'lxml.etree._Element'> 
<Element root at 0x2e99cfdcf08>
tree <class 'lxml.etree._ElementTree'> 
<lxml.etree._ElementTree object at 0x000002E99CF6AD48>

1.2 HTML:从字符串str ->新建Element (直接到标签)

import lxml.etree as etree

html_str = '''   #字符串str
        <div>
        <a>aaa</a>
        </div>
        '''
# 1. 字符串str -> html节点 (直接到<html>标签)
html = etree.HTML(html_str,parser=etree.HTMLParser())  

# 2. etree.tostring(对象,encode='utf-8') 转为utf-8字符串
strRes = etree.tostring(html,encoding='utf-8')
print(strRes.decode('utf-8'))
 

# 结果
<html>
	<body><div>
        <a>aaa</a>
    </div></body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,爬取京东等电商平台的销售数据通常需要使用到网络爬虫技术,结合一些第三方库如`requests`、`BeautifulSoup`或`Scrapy`框架。这里我将简述一个基本的步骤,但请注意实际操作可能需要遵守京东的使用条款和robots.txt协议,以及可能存在的反爬机制。 1. **安装必要的库**: 首先,你需要安装`requests`库来发送HTTP请求,`BeautifulSoup`或`lxml`用于解析HTML。 ```bash pip install requests beautifulsoup4 ``` 2. **获取网页源代码**: 使用`requests.get()`获取页面的HTML内容。假设我们想要抓取笔记本电脑列表页: ```python import requests from bs4 import BeautifulSoup url = "https://www.jd.com品类搜索.html?keyword=%E7%9B%AE%E8%AE%B0%E8%AE%BA" response = requests.get(url) html_content = response.text ``` 3. **解析HTML**: 使用`BeautifulSoup`解析HTML内容,找到包含销售信息的部分。由于京东的数据结构可能会变化,通常会寻找产品列表、销量等元素的class或id。 ```python soup = BeautifulSoup(html_content, 'lxml') sales_data = soup.find_all('div', class_='product-item-sales') # 假设销量在这一类别的元素中 ``` 4. **提取销售数据**: 对每个找到的销售数据元素,提取出销量信息。这可能需要进一步查找子元素并解析其文本。 ```python sales_numbers = [element.find('span', class_='J_salesNum')['data-value'] for element in sales_data] ``` 5. **处理和输出数据**: 最后,你可以将销量数据存储在一个列表或文件中,或者直接打印出来。 ```python for i, number in enumerate(sales_numbers): print(f"第{i+1}名:{number}") ``` 注意:这只是一个基础示例,实际爬取时可能需要处理分页、登录验证、动态加载内容等问题。同时,频繁抓取可能会被网站封禁,因此建议在合法范围内,并确保你的行为符合平台政策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值