有没有办法使用Scrapy在标记中找到css类的一部分?

时间:2015-05-28 17:11:30

标签: python web-scraping scrapy

使用Scrapy,有没有办法在页面的标记中找到类的一部分,例如,如果我有多个类,如“name-1,name-2,name-3”,怎么能我只找到了基地?即“名字 - ”

2 个答案:

答案 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()