Scrapy не может найти тег div в документах google - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь получить текст "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"]. Я упустил что-то очевидное?

1 Ответ

0 голосов
/ 14 июля 2020

Вот код.

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)
        print()
        print(response.css('span::text').get())
        print()

Вот данные.

[]
['<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>']
[]

data
...