Как сканировать список некоторых данных + ссылки и получить эти данные ссылки - PullRequest
0 голосов
/ 18 октября 2019

Я настраиваю базу данных PDF для веб-страницы, над которой я работаю, и мне нужно отсканировать веб-страницу, похожую на этот список словарей:

  1. Dictonary 1
    • Имя: Алиса
    • Фамилия: Смит
    • Дополнительная информация: Адрес1
    • Информация: (www.url.com) -> Мне нужно перейти по этой ссылке, разобрать ее содержаниеи добавьте информацию в этот словарь
  2. Словарь 2
    • Имя: Боб
    • Фамилия: Baggings
    • Дополнительная информация: Адрес
    • Информация: (www.url.com) -> Мне нужно перейти по этой ссылке, разобрать ее содержимое и добавить информацию в этот словарь
  3. Словарь n
    • Имя: Имя
    • Фамилия: Фамилия
    • Дополнительная информация: Адрес
    • Информация: (www.url.com) -> Мне нужноперейти по этой ссылке, разобрать ее содержимое и добавить информацию в этот словарь

и так далее, и тому подобное. Как я могу сделать это с помощью скрапа?

import scrapy

class SpiderDoesThings(scrapy.Spider):
    name = 'my_name'
    start_urls = [my_urls]

def parse(self, response):
    for item in response.css(filter1):
        link = item.css(filter2)
        meta_data = {
            'name': item.css(filter3)
        }
        yield scrapy.Request(url=link, callback=self.parse_additionalinfo, meta=meta_data)

def parse_additionalinfo(self, response):
    response.meta.update({'mynewinfo': response.css(filter4)
    yield response.meta

Код возвращает только первый словарь списка:

  1. Dictonary 1
    • Имя: Алиса
    • Фамилия: .. .
    • Дополнительная информация: ...
    • Информация: (ссылка) -> Мне нужно перейти по этой ссылке и добавить информацию в этот словарь

Я попытался добавить «no-filter = True», и он просканировал остальную часть списка, но он продолжал сканировать ту же дополнительную информацию. «Имя», «Фамилия» и «Больше информации» были правильными. Что-то вроде:

  1. Диктонар 1
    • Имя: Алиса
    • Фамилия: Смит
    • Дополнительная информация: Адрес1
    • Информация:parsed_info1
  2. Словарь 2
    • Имя: Боб
    • Фамилия: Baggings
    • Дополнительная информация: Адрес
    • Информация: parsed_info1
  3. Словарь n
    • Имя: Имя
    • Фамилия: Фамилия
    • Дополнительная информация: Адрес
    • Информация: parsed_info1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...