Select 器为:

response.css('div.dp-conteudo__esquerda span.varpb').extract_first()

每页this页和that页.

第一个通常返回正确的span,但第二个不返回任何内容.

我能看到的唯一相关的区别是,第二页有一个spanvarpb类出现在代码的不同部分的第一个,但它与我想要的另一个相同.在第二页源代码的第581行中:

...
<a class="--link" href="/putear"><span class="varpt">putear</span><span class="varpb">putear</span></a><span class="mx-2" style="color:#888888;">]</span></item> ou
...

即使它没有得到"正确的"span,它不应该得到这一个吗?我错过什么了吗?

为了说明这一点:我不在乎让它工作(通过其他方式;更改 Select 器),我想知道为什么它不能工作,请.

如果有哪个讲葡萄牙语的人想知道我为什么要拼写these个单词,那一定是为了玩拼字游戏.

EDIT:

多亏了Alexander的回答和this other question,我意识到Scrrapy并没有刮掉我期望的HTML代码,而是它的一个"不完整"版本.我不能确认这一点,因为我没有亲眼看到这一点(由于对代码的理解很差;对不起),但显然这是由于页面正在进行AJAX调用.

推荐答案

第一页-->;this.您得到的结果是<span class="varpb">putear</span>,我相信这就是您希望从问题中的示例中获得的结果.这是唯一的结果,因为这是唯一的span

对于第二个页面--that,你什么也得不到,因为没有span个类为varpb的元素是div个类为dp-conteudo__esquerda的元素的后代. 具有这些类的这两个元素都存在,但它们不存在于元素树的该分支中.


Edit

问题似乎在于,您没有查看您所引用的页面的实际源html.

要确保您实际查看的是scrapy正在解析的html内容,一种方法是将response.text保存到本地的html文件中,然后亲自判断它.这样可以确保您看到的html与scrapy看到的相同.

以下是如何使用scrapy Shell实现这一点的一个示例:

In [2]: fetch('https://dicionario.priberam.org/putear')
2023-12-28 00:22:01 [scrapy.core.engine] INFO: Spider opened
2023-12-28 00:22:01 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://dicionario.priberam.org/putear> (referer: None)

In [3]: with open('putear.html', 'wt', encoding='utf8') as fd:
   ...:     fd.write(response.text)
   ...:

In [4]: fetch('https://dicionario.priberam.org/puteares')
2023-12-28 00:23:09 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://dicionario.priberam.org/puteares> (referer: None)

In [5]: with open('puteares.html', 'wt', encoding='utf8') as fd:
   ...:     fd.write(response.text)
   ...:

Python相关问答推荐

在Python中,如何初始化集合列表脚本的输出

使用itertools出现第n个子串

是否有方法将现有的X-Y图转换为X-Y-Y1图(以重新填充)?

在Docker中运行HAProxy时无法获得503服务

如何在Python中增量更新DF

自定义新元未更新参数

在Python中管理多个OpenGVBO和VAO实例

由于瓶颈,Python代码执行太慢-寻求性能优化

如何销毁框架并使其在tkinter中看起来像以前的样子?

LAB中的增强数组

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

如何在Python数据框架中加速序列的符号化

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

Python—从np.array中 Select 复杂的列子集

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

字符串合并语法在哪里记录

Plotly Dash Creating Interactive Graph下拉列表

如何在PySide/Qt QColumbnView中删除列

跳过嵌套JSON中的级别并转换为Pandas Rame