为什么我从 Xpath 得到空字符串

科帕蒂奇

请帮助我理解为什么我的代码返回空字符串而不是跨度文本。我是新手,我得到了 Response 200,执行了与另一个站点相同的步骤(它在那里工作),但在这种情况下,最后并非没有任何错误。这是我正在解析的 html 代码,我需要获取字符串“Cessna Citation CJ3”

<div class="acTitle" style="margin-bottom: 4px;"> 
  <i class="fa fa-plane"></i> <span ng-bind="flight.ac.title" class="ng- binding">Cessna Citation CJ3</span>
</div>

这是我的代码:

import requests
import lxml.html

url = 'https://flyeasy.co/opapi/-fe3-dt1--ht2--ht3--ht4-ctp:magellanjets_list:-/' \
        '578526bdf6c494c11477ab06/'

headers = {
    'user-agent':  'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0'
}

def parse_data(url, headers):
    titles = []
    try:
        response = requests.get(url, headers=headers)
        print(response)
    except:
        return
    tree = lxml.html.document_fromstring(response.text)
    for item in tree.xpath('//*[contains(@class, "acTitle")]'):
        title = item.xpath(".//span/text()")
        print(title)
        titles.append(title)
        print(titles)
        print(len(titles))


parse_data(url, headers)
SIM卡

该网站的内容非常动态。它们在页面源中不可用。当您response.text使用 (ctrl + u) 手动打印或检查时,您将看不到所需的内容。

但是,有一个 api avilable 包含页面中所有可用的信息,包括延迟加载的信息。鉴于以下内容应该为您提供该页面的所有标题。

当您执行脚本时,返回结果将花费大量时间,因此请等待直到您在控制台中看到输出。

import requests

api_link = "https://flyeasy.co/api/search"
start_link = 'https://flyeasy.co/opapi/-fe3-dt1--ht2--ht3--ht4-ctp:magellanjets_list:-/578526bdf6c494c11477ab06/'

opid = start_link.split("/")[-2]

params = {"opIds":[f"{opid}"],"trip":"offers","source":"eq","promoteOpIds":"all"}

with requests.Session() as s:
    s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    s.headers['Referer'] = start_link
    res = s.post(api_link,json=params)
    for item in res.json()['flights']['departing']:
        print(item['ac']['title'])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式:为什么我在结果中得到空字符串

为什么我从 jquery find().text() 得到一个空字符串?

当我尝试添加拆分后的字符串时,为什么会得到空字符串?

为什么我得到IO :: Uncompress :: Unzip :: unzip:输入的文件名是undef还是空字符串消息?

XPath结果为空字符串

为什么在python中使用re.split()时会得到那些空字符串?

在我的字符串中得到“结果字符串不是有效的 XPath 表达式

为什么我得到415尝试发布字符串?

为什么我得到“字符串不是函数”?

我在tkinter中使用条目时得到空字符串

为什么 s[0] 是 C++ 中空字符串 s 的空字符串?

无法从 Xpath 中获取要列出的空字符串

为什么我对WinGetTitle的调用返回一个空字符串?

为什么我的函数返回一个空字符串?

为什么我的密码字段的值总是一个空字符串?

为什么当我使用计数结果是空字符串?

为什么我一开始就变得很空字符串

我的Ajax调用将空字符串对象传递给JSonResult Action,为什么?

给出为什么我的AND子句在SQL中返回空字符串的原因

为什么我的函数在python中返回空字符串?

为什么我的mysql默认密码不是空字符串

为什么在我的代码中不需要将变量设置为空字符串?

为什么我的密码字段的值总是一个空字符串?

为什么在JavaScript中不空字符串== null

为什么搜索空字符串这么快?

为什么包含空字符串的列表为真?

为什么tcl认为空字符串是double?

为什么%(Identity)扩展为空字符串?

为什么 glGetProgramInfoLog 返回空字符串?