Я пытаюсь получить текст "data" с помощью scrapy из ссылки https://docs.google.com/document/d/1owRcDbh6vKuohojMhFD_2d4ivGM9J-nDziVRJR9Djck/edit?usp=sharing, которая является документами Google. Мой код:
import scrapy
class MitdataSpider(scrapy.Spider):
name = 'mitdata'
allowed_domains = ['www.docs.google.com']
start_urls = ['https://docs.google.com/document/d/1owRcDbh6vKuohojMhFD_2d4ivGM9J-nDziVRJR9Djck/edit?usp=sharing']
def parse(self, response):
text = response.selector.xpath('//*[@id="kix-appview"]/div[7]/div/div[1]/div[1]/div/div/div/div[2]/div/div[2]/div[1]/div/div/div[1]/div/div/div[2]/div/table/tbody/tr[2]/td[2]/div/div/div/div/span[2]/span/span/text()[1]').extract()
goodhtmlcode = response.selector.xpath('//*[@id="kix-appview"]').extract()
badhhtmlcode = response.selector.xpath('//*[@id="kix-appview"]/div[7]').extract()
print(text)
print(goodhtmlcode)
print(badhhtmlcode)
Вывод:
[]
['<div id="kix-appview" class="kix-appview"><div id="docs-findbar-id" class="docs-ui-unprintable"></div><div id="docs-spellcheckslidingdialog-id" class="docs-ui-unprintable"></div><div id="docs-checkupdialog-id" class="docs-ui-unprintable"></div><div id="docs-suggestiondialog-id" class="docs-ui-unprintable"></div><div class="kix-appview-editor-container"><div class="kix-appview-editor"></div></div><div id="kix-vertical-ruler" class="docs-ui-unprintable docs-vertical-ruler docs-ruler"><div class="docs-ruler-inner"></div></div></div>']
[]
Я не понимаю, почему просто перестает находить элементы. Он может найти все до //*[@id="docs-suggestiondialog-id"]
, а затем пропускает все, что находится между //*[@id="docs-suggestiondialog-id"]
и //*[@id="kix-vertical-ruler"]
. Я упустил что-то очевидное?