我想使用 python 和 scrapy 从网页中抓取一些信息,但是当我尝试这样做时,我的项目的输出是空的...
首先,我用 scrapy 开始了一个新项目。然后我在 items.py 文件中写了以下内容:
import scrapy
class KakerlakeItem(scrapy.Item):
info=scrapy.Field()
pass
接下来,我使用以下代码在蜘蛛文件夹中创建了一个新文件:
import scrapy
from kakerlake.items import KakerlakeItem
class Kakerlakespider(scrapy.Spider):
name='Coco'
allowed_domains=['http://www.goeuro.es/']
start_urls=['http://www.goeuro.es/search/NTYzY2U2Njk4YzA1ZDoyNzE2OTU4ODM=']
def parse(self, response):
item=KakerlakeItem()
item['info']=response.xpath('//span[@class= "inline-b height-100"]/text()').extract()
#yield item
return item
我希望,通过在控制台中编写 scrapy crawl Coco -o data.json,我会得到我想要的东西,但我没有用 {' 获取 json 文件信息':[]}。即,一个空项目。
我已经尝试了很多东西,但我不知道为什么它不能正常工作......
请您参考如下方法:
您的 xpath 对于页面无效,因为没有一个类带有“inline-b”或“height-100”。此页面通过 Javascript 进行了大量修改,因此您在浏览器中看到的内容并不代表 Scrapy 收到的内容。
xpath 结果:
>>> response.xpath('//span[contains(@class, "inline-b")]')
[]
>>> response.xpath('//span[contains(@class, "height-100")]')
[]
