我尝试使用以下命令获取ul标记中的所有li/a元素:
def parse(self, response):
newItem = Item()
list = response.xpath('//ul[@id="ad-list"]/li//a[@data-ds-component="DS-Link"]')
字符串
当我循环遍历列表时,只有我抓取的每个页面的第一个元素在列表中重复:
for item in list:
print(type(offer))
newItem["product_id"] = item.xpath('//@data-lurker_list_id').get()
newItem["url"] = item.xpath('//@href').get()
newItem["title"] = item.xpath('//@title').get()
型
我已经检查过了,我在ul中得到了正确的li数作为列表变量中的响应,但是只出现了第一个li项。
为了在响应后验证它,我尝试打印以下内容:
print("INFO:")
print(len(offerList))
print(list(map(lambda x: x.xpath('//@data-lurker_list_id').get(), offerList)))
型
我得到这个输出:
INFO:
50
['1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301', '1204352301']
型
你知道我错过了什么吗?
1条答案
按热度按时间qf9go6mv1#
我刚发现问题。基本上应该只得到ul,得到我想要的li列表。
字符串