在使用 scrapy进行爬取数据的时候,有些时候需要爬取的是一段文本,或者一个div里面有很多内容,这时候我们就要使用到get()或者getall()来获取数据:
get():是获取的满足条件的第一个数据。
getall():是获取的满足条件的所有数据。
在Scrapy中,get()
和getall()
方法是Selector对象提供的两种方法,用于从HTML中提取数据。
get()
方法用于获取第一个匹配的数据项,如果没有找到任何匹配项,则返回None
。
getall()
方法用于获取所有匹配的数据项,返回一个列表,即使是一个匹配项也会返回一个包含该项的列表。
这两个方法通常与Scrapy的选择器(Selector)一起使用,可以帮助我们从HTML或XML数据中提取所需的信息。
例如,假设我们有以下HTML代码:
<div class="example"> <a href="link1.html">Link 1</a> <a href="link2.html">Link 2</a> </div>
我们可以使用以下Scrapy选择器代码来提取所有的链接:
response = HtmlResponse(url='http://example.com', body=html, encoding='utf8') links = response.css('.example a::attr(href)').getall() print(links) # 输出: ['link1.html', 'link2.html']
在这个例子中,css()
方法用于选择具有特定类的div元素中的所有a标签,a::attr(href)
是一个XPath表达式,用于获取这些a标签的href属性值。getall()
方法用于获取所有匹配的链接。