用scrapy爬取酷狗前一百,parse中选择器选择使用xpath
时间: 2024-02-29 09:57:04 浏览: 47
scrapy 爬取酷狗T500音乐
5星 · 资源好评率100%
好的,下面是使用XPath解析HTML页面的代码示例:
1. 首先,需要在`spiders`目录下创建一个名为`kugou.py`的爬虫文件,并编写爬虫代码。
```
import scrapy
class KugouSpider(scrapy.Spider):
name = 'kugou'
allowed_domains = ['www.kugou.com']
start_urls = ['https://www.kugou.com/yy/rank/home/1-8888.html?from=rank']
def parse(self, response):
for item in response.xpath('//ul[@class="pc_temp_songlist"]/li'):
yield {
'rank': item.xpath('.//span[@class="pc_temp_num"]/text()').get(),
'song': item.xpath('.//a[@class="pc_temp_songname"]/text()').get(),
'singer': item.xpath('.//span[@class="pc_temp_songname"]/text()').get(),
}
```
2. 在`parse`函数中,我们使用了`response.xpath`方法来选取页面中的元素。`//ul[@class="pc_temp_songlist"]/li`表示选择所有包含在类名为`pc_temp_songlist`的`ul`元素下的`li`元素。
3. `item.xpath('.//span[@class="pc_temp_num"]/text()').get()`表示选取`li`元素下类名为`pc_temp_num`的元素的文本内容。
4. `item.xpath('.//a[@class="pc_temp_songname"]/text()').get()`表示选取`li`元素下类名为`pc_temp_songname`的元素中的`a`元素的文本内容。
5. `item.xpath('.//span[@class="pc_temp_songname"]/text()').get()`表示选取`li`元素下类名为`pc_temp_songname`的元素中的`span`元素的文本内容。
6. 最后,我们将这些信息保存到字典中并通过`yield`返回给Scrapy框架。
希望以上代码示例可以帮助到你!
阅读全文