Ale*_*egg 5 python xpath scrapy web-scraping
我是Scrapy的新手,我刚刚开始研究XPath.
我正在尝试从div中的html列表项中提取标题和链接.下面的代码是我以为我会去做的,(选择ul div,通过id,然后循环遍历列表项):
def parse(self, response):
for t in response.xpath('//*[@id="categories"]/ul'):
for x in t.xpath('//li'):
item = TgmItem()
item['title'] = x.xpath('a/text()').extract()
item['link'] = x.xpath('a/@href').extract()
yield item
Run Code Online (Sandbox Code Playgroud)
但是我收到了与此尝试相同的结果:
def parse(self, response):
for x in response.xpath('//li'):
item = TgmItem()
item['title'] = x.xpath('a/text()').extract()
item['link'] = x.xpath('a/@href').extract()
yield item
Run Code Online (Sandbox Code Playgroud)
导出的csv文件包含源代码从上到下的li数据...
我不是专家,我已经做过多次尝试,如果有人能够对此有所了解,我将不胜感激.
您需要使用点开始在内部循环内使用的xpath表达式:
for t in response.xpath('//*[@id="categories"]/ul'):
for x in t.xpath('.//li'):
Run Code Online (Sandbox Code Playgroud)
这将使其在当前元素的范围内进行搜索,而不是整个页面.
在使用相对XPath时查看更多解释.
归档时间: |
|
查看次数: |
7231 次 |
最近记录: |