python爬虫使用xpath提取信息部分失败

用xpath提取猪八戒网的数据,为啥一半提取成功一半空列表

import requests
from lxml import etree

url = "https://beijing.zbj.com/search/service/?l=0&kw=saas&r=2"
resp = requests.get(url)
# print(resp.text)

# 把html源码进行加载解析
html = etree.HTML(resp.text)
# 拿到每一个服务商的div
divs = html.xpath('//*[@id="__layout"]/div/div[3]/div[1]/div[4]/div/div[2]/div[1]/div')
# print(divs)
for div in divs:  # 每一个服务商信息
    price = div.xpath("./div/div[2]/div[1]/span/text()")
    title = div.xpath("./div/a/div[2]/div[1]/div/text()")
    print(price)
    print(title)

resp.close()

img

以下回答结合了ChatGPT:
这段代码没有使用socket连接获取HTML内容,而是使用了requests库发送HTTP GET请求获取HTML内容。如果你已经获取到了HTML内容,可以使用base64和webbrowser模块将其在浏览器中打开。

以下是将HTML内容转换为base64编码并在浏览器中打开的代码:


import base64
import webbrowser

# 将HTML内容转换为base64编码
html_content = resp.text.encode('utf-8')
html_base64 = base64.b64encode(html_content).decode('utf-8')

# 将base64编码后的HTML内容嵌入到data URI中
html_data_uri = 'data:text/html;base64,' + html_base64

# 在浏览器中打开HTML内容
webbrowser.open(html_data_uri)

注意,这段代码中的resp变量应该是从之前的代码中获取到的requests响应对象。