哇咔咔,我又来啦,今天我们继续吹吹scrapy

我又来了
初步探索scrapy
https://www.appinn.com/category/windows/这里有很多小众软件,很多好东西。我们如果想要得到这个网站推荐的所有 Windows 软件的文章标题和链接,用 Scrapy 写的爬虫如下

start_urls = ['https://www.appinn.com/category/windows/']
#这是开始请求响应
yield result# 把结果告诉 Scrapy
yield response.follow(next_page, self.parse)# 开始爬下一页,并使用 parse 方法解析

scrapy的css选择器很强。和BeautifulSoup一样,#表示id,.表示class。我们来看一些例子。

# 从响应里解析出所有 article 标签
response.css('article')
# 从 article 里解析出 class 为 title 的 h2 标签 下面的 a 标签
response.css('h2.title a')

如果选择class包含container的div元素

response.css('div.container')

当要选择的元素有多个 class 时

这个 a 元素有 next 和 page-number 两个 class,可以写多个 . 来选择:response.css(‘a.next.page-numbers’)。表示选择 class 同时包含 next 和 page-numbers 的 a 元素,这里不能有空格。

response.css('a.next.page-numbers')

想要文本内容就后面加上::text就好。如果想要纯文本,需要加上get()或者getall().举个例子

# 取符合条件的第一条数据
response.css('h2.title.post-title a::text').get()

# 取符合条件的所有数据
response.css('h2.title.post-title a::text').getall()

下面来看看attrib。它实际上是一个字典。我们可以用a.attrib可以看到a元素上的所有属性。我来用两种方法打印h2.title.post-title a 这个条件的标签的 href 属性

for a in response.css('h2.title.post-title a'):
  print(a.attrib['href'])

或者用加上::attr(href)a的方法

for href in response.css('h2.title.post-title a::attr(href)').getall():
  print(href)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值