Python Scrapy-从页面上的其他文本生成xpath响应时,谓词无效
试图从根据页面上的文本构建表id的页面中刮取数据。由于每个页面具有不同的文本,因此表id对于每个页面都是唯一的。我可以通过将字符串放在一起来获取表id,但无法在xpath语句中使用该id 当我在下面的语句中硬编码表id时,我得到了一个成功的响应Python Scrapy-从页面上的其他文本生成xpath响应时,谓词无效,python,web-scraping,xpath,scrapy,lxml,Python,Web Scraping,Xpath,Scrapy,Lxml,试图从根据页面上的文本构建表id的页面中刮取数据。由于每个页面具有不同的文本,因此表id对于每个页面都是唯一的。我可以通过将字符串放在一起来获取表id,但无法在xpath语句中使用该id 当我在下面的语句中硬编码表id时,我得到了一个成功的响应 for zodiac in response.xpath('//table[@id="Taurus-the-Bull"]/tbody/tr'): 但是当我试图从页面上的字符串构建id时 theid = "Taurus-th
for zodiac in response.xpath('//table[@id="Taurus-the-Bull"]/tbody/tr'):
但是当我试图从页面上的字符串构建id时
theid = "Taurus-the-Bull"
for zodiac in response.xpath('//table[@id=f"{theid}"]/tbody/tr'):
我不断得到ValueError:XPath错误:表[@id=f{theid}]/tbody/tr
中的谓词无效&我不知道为什么?我很确定f“{theid}”
的计算结果是Taurus the Bull
,但不知道xpath错误存在的原因…我认为您使用的方法是错误的-应该将f
放在字符串的开头。这就是你应该写的:
for zodiac in response.xpath(f'//table[@id="{theid}"]/tbody/tr'):
对于f字串,f应该在整个字串之前谢谢@Serhii Shynkarenko,我现在可以得到回复了