使用python scrapy选择器提取导航div中的链接

时间:2017-09-20 20:45:13

标签: python beautifulsoup scrapy

我正在尝试提取this webpage中导航div filterCategoryLevelOne 中的所有链接。

我使用Beautifulsoup成功完成了这项工作并请求如下:

>> import requests
>> from bs4 import BeautifulSoup
>> url='http://uk.farnell.com/c/electrical'
>> response = requests.get(url)
>> soup = BeautifulSoup(source.content, "html.parser")
>> mydiv = soup.findAll("nav", { "class" : "filterCategoryLevelOne" })

my_div 为我提供了所有可以提取href值的列表。

但是,如果我对scrapy shell做同样的事情,我会得到别的东西:

>> scrapy shell -s USER_AGENT='Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9' http://uk.farnell.com/c/electrical
>> response.xpath('//nav[@class="filterCategoryLevelOne"]')
[<Selector xpath='//nav[@class="filterCategoryLevelOne"]' data='<nav class="filterCategoryLevelOne" aria'>]

如何在scrapy中进一步找到该div中的href值?

1 个答案:

答案 0 :(得分:2)

您可以直接获取所有网址:

  response.xpath('//nav[@class="filterCategoryLevelOne"]//a/@href').extract()