问题在于你使用了错误的方式将HTML文本传递给etree.HTML()函数。在这里,你应该传递一个字符串形式的HTML文本,而不是直接传递resp.text。
正确的代码如下:
import requests
from lxml import etree
url = 'https://www.proginn.com/cat'
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
resp = requests.get(url,headers=headers)
# print(resp.text)
tree = etree.HTML(resp.text) # 这里需要传递resp.text,而不是"resp.text"
divs = tree.xpath("/html/body/div/div/div/div/div") # 提取所有的程序的DIVs
for div in divs:
price = div.xpath("./div/p/span/text()") # 取每一个程序的价格
print(price)
请注意,为了能够正确解析HTML,你需要安装好lxml库。在Python中,可以通过运行`pip install lxml`来安装这个库。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |