Scrapy:获取正则表达式匹配的同级元素

时间:2018-06-30 06:27:28

标签: css scrapy

我正在使用Scrapy从大学网站上抓取大学论文主题。我知道如何使用正则表达式匹配关键字,但是我真正想要的信息是与该匹配相同的div中的其他元素。 Scrapy中的Response.css(...)。re(...)函数返回一个字符串。有什么方法可以导航到正则表达式匹配项的父div?

示例:https://admissions.utexas.edu/apply/freshman-admission#fndtn-freshman-admission-essay-topics。在上面的页面上,我可以使用以下内容匹配论文主题h1:response.css(“ * :: text”)。re(“ Essay Topics”)。但是,我找不到在同一个div中的主题A和主题N下抓住2个实际论文主题的方法。

1 个答案:

答案 0 :(得分:0)

这不是正确的方法。您应该使用类似以下的内容

response.xpath("//div[@id='freshman-admission-essay-topics']//h5//text()").extract()

如果您只想要CSS,则可以使用

In [7]: response.css("#freshman-admission-essay-topics h5::text, #freshman-admission-essay-topics h5 span::text").extract()
Out[7]: ['Topic A \xa0\xa0', 'Topic N']