我正在尝试使用Scrapy抓取具有以下源代码格式的下拉列表。
- ul>
- li>
- a> text=header_1
- nested_ul>
- nested_li> value_1
- li>
- a> text=header_2
- nested_ul>
- nested_li> value_2
- nested_li> value_3
- nested_li> value_4
- li>
- a> text=header_3
- nested_ul>
- nested_li> value_5
- nested_li> value_6
我能够将所有标头刮到一个列表中,并将所有值刮到一个列表中,但是我不确定如何刮取嵌套的值,如下所示。我的问题与python语法有关,而不是与抓取数据有关,这就是为什么我不包括列表的类/ id的原因。感谢您的帮助。
# Desired Output
headers_list = [h1, h2, h3]
value_list = [[v1], [v2,v3,v4], [v5,v6]]
答案 0 :(得分:0)
您可以遍历<li>
标签的选择器,并使用它从那里获取数据。
headers_list = list()
value_list = list()
for li in response.xpath('//li'):
headers_list.append(li.xpath('./a/text()').get())
value_list.append(li.xpath('./ul/li/text()').getall())