xpath无法识别标记的谓词
我尝试使用scrapy xpath来刮取页面,但当我使用for循环时,它似乎无法捕获带有谓词的标记, #此包将包含Scrapy项目的爬行器xpath无法识别标记的谓词,xpath,web-scraping,scrapy,Xpath,Web Scraping,Scrapy,我尝试使用scrapy xpath来刮取页面,但当我使用for循环时,它似乎无法捕获带有谓词的标记, #此包将包含Scrapy项目的爬行器 from cunyfirst.items import CunyfirstSectionItem import scrapy import json class CunyfristsectionSpider(scrapy.Spider): name = "cunyfirst-section-spider" start_urls = ["file:///Us
from cunyfirst.items import CunyfirstSectionItem
import scrapy
import json
class CunyfristsectionSpider(scrapy.Spider):
name = "cunyfirst-section-spider"
start_urls = ["file:///Users/haowang/Desktop/section.htm"]
def parse(self, response):
url = response.url
yield scrapy.Request(url, self.parse_page)
def parse_page(self, response):
n = -1
for section in response.xpath("//a[contains(@name,'MTG_CLASS_NBR')]"):
print(response.xpath("//a[@name ='MTG_CLASSNAME$10']/text()"))
n += 1
class_num = section.xpath('text()').extract_first()
# print(class_num)
classname = "MTG_CLASSNAME$" + str(n)
date = "MTG_DAYTIME$" + str(n)
instr = "MTG_INSTR$" + str(n)
print(classname)
class_name = response.xpath("//a[@name = classname]/text()")
我正在寻找一个名为“MTG_CLASSNAME$”+str(n)的标记,n为0,1,2…,我从xpath查询中得到空输出。不知道为什么
附言。
我基本上是在试图从中获取课程和他们的信息
使用过滤器:金斯堡CC,18号秋季,生物
谢谢 嗯。。。我已经访问了你在问题描述中加入的网站,我使用元素检查并搜索“MTG_CLASSNAME”,我得到了0个匹配项 所以我会给你一些工具:
- 在settings.py中,设置: LOG\u FILE=“LOG.txt” LOG_STDOUT=真 然后打印响应正文(response.body),并在log.txt中搜索它
- 检查那里是否有你要找的东西
- 如果有,请使用此( 或类似的)来检查xpath语句
:
通过
for response.xpath(“//a[contains(@name,'MTG_CLASS_NBR'))”).extract():
,这将在您获取要查找的数据时引发错误。谢谢,您是否已将筛选器放入Kingsborough CC,fall 18,BIO?它将显示课程表,然后使用inspect,您可以找到模式MTG_类名或其他内容。谢谢我查看了日志文件,找到了我要查找的模式。最奇怪的是,我可以使用response.xpath(“//a[@name='MTG\u CLASS\u NBR$10']]/text()”)获得正确的数据,但是当我将其放入for循环时,它就不再工作了好的,我得到了应用了过滤器的代码。。。在“file:///Users/haowang/Desktop/section.htm“是否存在包含所需数据的html?您是否已尝试通过response.xpath(//a[contains(@name,'MTG_CLASS_NBR')])更改response.xpath(//a[contains(@name,'MTG_CLASS_NBR')))))].extract()来更改response.xpath(//a[contains(@name,'MTG_CLASS_NBR'))?