不会解决bug怎么办 2023-04-09 20:55 采纳率: 0%
浏览 25

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

  • 写回答

2条回答 默认 最新

  • CQ.abc 2023-04-09 21:16
    关注

    以下回答结合了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响应对象。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月9日