Я создаю веб-искатель, используя scrapy, который просто берет все ссылки reddit на первой странице. Когда я пытаюсь помещать его в папку json, все, что я получаю, это «[».Scrapy only output '['
Вот мой паук.
from scrapy import Spider
from scrapy.selector import Selector
from redditScrape.items import RedditscrapeItem
class RedditSpider(Spider):
name = "redditScrape"
allowed_domains = ["reddit.com"]
start_urls = [
"https://www.reddit.com/r/all"
]
def parse(self, response):
titles = Selector(response).xpath('//div[@class="entry unvoted lcTagged"]/p[@class="title"]')
for title in titles:
item = RedditscrapeItem()
item['title'] = title.xpath('/a[@class="title may-blank loggedin srTagged imgScanned"]/text()').extract()
yield item
Всякий раз, когда я запускаю запрос xpath в консоли google chrome, я получаю результат, который я искал.
Любая идея, почему мой скребок выход обыкновение правильно?
Это команда, я использую для выполнения:
scrapy crawl redditScrape -o items.json -t json
Куда вы видите 'title can-blank loggedin srTagged imgScanned'? Это вообще не существует, 'srTagged' даже не в источнике. Я не уверен, что вы смотрите, но это не то же самое, что я вижу в своем браузере, глядя на 'https: // www.reddit.com/r/all' –
Когда я проверяю элемент на reddit.com/ r/все, что у него есть в теге класса. @PadraicCunningham – Lewis
Я смотрю на это сейчас, его нигде не видно! Я вижу 'title can-blank loggedin', try'. ./a[@class="title can-blank loggedin "] '' –