Pra*_*ava 17 python scrapy web-scraping scrapy-spider
我是scrapy的新手,我正试图抓住宜家网站的网页.基本页面,其中包含此处给出的位置列表.
我的items.py文件如下:
import scrapy
class IkeaItem(scrapy.Item):
name = scrapy.Field()
link = scrapy.Field()
Run Code Online (Sandbox Code Playgroud)
而蜘蛛给出如下:
import scrapy
from ikea.items import IkeaItem
class IkeaSpider(scrapy.Spider):
name = 'ikea'
allowed_domains = ['http://www.ikea.com/']
start_urls = ['http://www.ikea.com/']
def parse(self, response):
for sel in response.xpath('//tr/td/a'):
item = IkeaItem()
item['name'] = sel.xpath('a/text()').extract()
item['link'] = sel.xpath('a/@href').extract()
yield item
Run Code Online (Sandbox Code Playgroud)
在运行文件时,我没有得到任何输出.json文件输出类似于:
[[{"link": [], "name": []}
Run Code Online (Sandbox Code Playgroud)
我要找的输出是位置名称和链接.我一无所获.我哪里错了?
ale*_*cxe 15
项目字段的xpath表达式中存在一个简单的错误.循环已经遍历a标记,您不需要a在内部xpath表达式中指定.换句话说,目前您正在搜索a的内部标签a里面的标签td内tr.这显然导致什么都没有.
更换a/text()用text()和a/@href用@href.
(测试 - 适合我)
用这个....
item['name'] = sel.xpath('//a/text()').extract()
item['link'] = sel.xpath('//a/@href').extract()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27266 次 |
| 最近记录: |