利用python设计一段代码,①使用lxml提取一个网页div标签里的li标签的文字内容②使用lxml提取一个网页div标签里的b标签的文字内容③将li标签的内容作为key,b标签的内容为value,储存到一个json文件中
时间: 2024-12-17 07:43:28 浏览: 38
要完成这个任务,首先确保已经安装了`lxml`和`json`库。如果没有安装,可以通过以下命令安装:
```bash
pip install lxml requests
```
然后,你可以编写以下Python代码来实现需求:
```python
import json
from lxml import html
import requests
# 1. 获取网页HTML内容
def get_html_content(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print(f"Failed to fetch the webpage. Status code: {response.status_code}")
return None
# 2. 使用lxml解析HTML并提取数据
def extract_data_from_div(html_text, div_id):
root = html.fromstring(html_text)
div = root.find(f'div[@id="{div_id}"]')
li_list = div.findall('li')
b_elements = div.findall('b')
# 提取文本内容
li_texts = [li.text for li in li_list]
b_texts = [b.text for b in b_elements]
return li_texts, b_texts
# 3. 将数据保存到JSON文件
def save_to_json(key_value_pairs, filename):
with open(filename, 'w', encoding='utf-8') as f:
json.dump(key_value_pairs, f, ensure_ascii=False, indent=4)
# 示例用法
url = "http://example.com" # 替换为你想抓取的网页地址
div_id = "myDivId" # 替换为网页中div的ID
html_content = get_html_content(url)
if html_content is not None:
li_texts, b_texts = extract_data_from_div(html_content, div_id)
data_dict = dict(zip(li_texts, b_texts))
save_to_json(data_dict, "data.json")
else:
print("Skipped saving data due to unsuccessful webpage retrieval.")
```
在这段代码中,你需要替换`url`为你要抓取的网页地址和`div_id`为你需要提取数据的div标签的ID。运行这段代码后,它会下载页面、提取所需的数据,并将其存储到名为"data.json"的文件中。
阅读全文