Как мне разобрать это конкретное тело HTML, используя селектор в scrapy? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь сканировать определенный элемент с определенного веб-сайта.

Фрагмент кода выглядит следующим образом:

    # Constant Div Path variables for Parameters.
    pathForMovieCardContainer = '//div[@class="card-container wow fadeIn movie-card-container"]'
    pathForMovieName = 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()'
    str_slash = "/"
    movies_dict = []
    movies = response.xpath(pathForMovieCardContainer).extract()

    for movie in movies:
        print("***********************")
        print(movie)
        mov = TestDataCrawlersItem()
        mov['name'] = Selector(text=movie).xpath(pathForMovieName).extract()

Я не могу получить текст с пути 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()' Я не уверен, правильно ли сконструирован мой pathForMovieName.Может кто-то помочь мне с этим?Спасибо!

1 Ответ

0 голосов
/ 22 сентября 2018

Когда вам нужно выбрать элемент по имени класса, использовать .css() проще, чем .xpath().Вы можете попробовать что-то вроде этого:

movies = response.css('.movie-card-container')
for movie in movies:
    item = TestDataCrawlersItem()
    item['name'] = movie.css('.card-title::text').get()

Подробнее о селекторах CSS: https://parsel.readthedocs.io/en/latest/usage.html

...