import requests
from lxml import html
url = 'https://cstep.in/publications-details.php?id=703'
response = requests.get(url)
tree = html.fromstring(response.content)
# 使用XPath定位TYPE
type_element = tree.xpath('//div[@class="publication-details-row"]/div[@class="publication-details-data" and contains(text(), "Type")]/following-sibling::div/text()')[0]
print(f"Type: {type_element}")
# 使用XPath定位DATE
date_element = tree.xpath('//div[@class="publication-details-row"]/div[@class="publication-details-data" and contains(text(), "Date")]/following-sibling::div/text()')[0]
print(f"Date: {date_element}")
解释:
- 首先,我们使用requests库获取网页的内容。
- 然后,我们使用lxml库中的html.fromstring()函数将HTML内容转换为一个Element对象,以便我们可以使用XPath表达式来定位元素。
- 接着,我们使用XPath表达式定位TYPE元素。我们通过查看网页的HTML代码,发现TYPE元素是包含文本"Type"的div标签的兄弟标签的文本内容。因此,我们使用contains()函数来定位包含文本"Type"的div标签,然后使用following-sibling::div来定位该标签的兄弟标签,再使用text()函数获取该标签的文本内容。
- 最后,我们使用XPath表达式定位DATE元素。DATE元素的定位方式与TYPE元素类似,只需将包含文本"Type"的div标签改为包含文本"Date"的div标签即可。 输出结果:
Type: Research Report
Date: 29.03.2021