使用Scrapy,有没有办法在页面的标记中找到类的一部分,例如,如果我有多个类,如“name-1,name-2,name-3”,怎么能我只找到了基地?即“名字 - ”
答案 0 :(得分:2)
您还可以在纯XPath或CSS选择器方法中应用“starts-with”检查:
response.xpath('//*[starts-with(@class, "name-")]')
response.css('[class^="name-"]')
答案 1 :(得分:1)
Scrapy选择器接受正则表达式,请参阅http://doc.scrapy.org/en/latest/topics/selectors.html#regular-expressions
from scrapy import Selector
html = """
<a class="name-1" href="#">foo</a>
<a class="name-2" href="#">bar</a>
<a class="name-3" href="#">foo</a>
<a class="name-foo" href="#">teststr</a>
"""
sel = Selector(text=html, type="html")
print sel.xpath('//a[re:test(@class, "name-\d$")]').extract()