使用Scrapy抓取下拉列表

时间:2020-06-21 22:31:08

标签: python loops scrapy

我正在尝试使用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]]

1 个答案:

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