使用 scrapy shell 时,我没有从 response.xpath 获得任何数据
When using scrapy shell, I get no data from response.xpath
我正在尝试抓取博彩网站。但是,当我在 scrapy shell 中检查检索到的数据时,我什么也没收到。
我需要的 xpath 是://*[@id="yui_3_5_0_1_1562259076537_31330"] 当我在 shell 中写入时,这就是我得到的:
In [18]: response.xpath ( '//*[@id="yui_3_5_0_1_1562259076537_31330"]')
Out[18]: []
输出是 [],但我希望它是我可以从中提取 href 的东西。
当我使用 Chrome 中的 "inspect" 工具时,网站仍在加载,此 ID 以紫色轮廓显示。这是否意味着该站点正在使用 JavaScipt?如果这是真的,这就是为什么 scrapy 找不到该项目并且 returns []?
我尝试使用 Scrapy 抓取网站,这是我的结果。
这是 items.py 文件
import scrapy
class LifeMatchsItem(scrapy.Item):
Event = scrapy.Field() # Name of event
Match = scrapy.Field() # Teams1 vs Team2
Date = scrapy.Field() # Date of Match
这是我的蜘蛛代码
import scrapy
from LifeMatchesProject.items import LifeMatchsItem
class LifeMatchesSpider(scrapy.Spider):
name = 'life_matches'
start_urls = ['http://www.betfair.com/sport/home#sscpl=ro/']
custom_settings = {'FEED_EXPORT_ENCODING': 'utf-8'}
def parse(self, response):
for event in response.xpath('//div[contains(@class,"events-title")]'):
for element in event.xpath('./following-sibling::ul[1]/li'):
item = LifeMatchsItem()
item['Event'] = event.xpath('./a/@title').get()
item['Match'] = element.xpath('.//div[contains(@class,"event-name-info")]/a/@data-event').get()
item['Date'] = element.xpath('normalize-space(.//div[contains(@class,"event-name-info")]/a//span[@class="date"]/text())').get()
yield item
这是结果
我正在尝试抓取博彩网站。但是,当我在 scrapy shell 中检查检索到的数据时,我什么也没收到。
我需要的 xpath 是://*[@id="yui_3_5_0_1_1562259076537_31330"] 当我在 shell 中写入时,这就是我得到的:
In [18]: response.xpath ( '//*[@id="yui_3_5_0_1_1562259076537_31330"]')
Out[18]: []
输出是 [],但我希望它是我可以从中提取 href 的东西。
当我使用 Chrome 中的 "inspect" 工具时,网站仍在加载,此 ID 以紫色轮廓显示。这是否意味着该站点正在使用 JavaScipt?如果这是真的,这就是为什么 scrapy 找不到该项目并且 returns []?
我尝试使用 Scrapy 抓取网站,这是我的结果。
这是 items.py 文件
import scrapy
class LifeMatchsItem(scrapy.Item):
Event = scrapy.Field() # Name of event
Match = scrapy.Field() # Teams1 vs Team2
Date = scrapy.Field() # Date of Match
这是我的蜘蛛代码
import scrapy
from LifeMatchesProject.items import LifeMatchsItem
class LifeMatchesSpider(scrapy.Spider):
name = 'life_matches'
start_urls = ['http://www.betfair.com/sport/home#sscpl=ro/']
custom_settings = {'FEED_EXPORT_ENCODING': 'utf-8'}
def parse(self, response):
for event in response.xpath('//div[contains(@class,"events-title")]'):
for element in event.xpath('./following-sibling::ul[1]/li'):
item = LifeMatchsItem()
item['Event'] = event.xpath('./a/@title').get()
item['Match'] = element.xpath('.//div[contains(@class,"event-name-info")]/a/@data-event').get()
item['Date'] = element.xpath('normalize-space(.//div[contains(@class,"event-name-info")]/a//span[@class="date"]/text())').get()
yield item
这是结果