Как получить данные из под URL в Python Scrapy - PullRequest
0 голосов
/ 04 июня 2019

Я новичок в области терапии.

У меня есть таблица, как,

<tr>
 <td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>
<tr>
 <td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>
<tr>
 <td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>....

А на странице, имеющей метки, есть <h1 class='marks'>, содержащий метки. Я зацикливаю tr и создаю объект item, item ['name'] = 'name from td [1]' item ['age'] = 'имя из тд [2]' Теперь мне нужно перейти к ссылке на метки, получить метки и установить для нее элемент item ['marks']

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

2 голосов
/ 04 июня 2019

Вы можете использовать yield запрос с атрибутом meta:

def parse(self, response):
    for row in response.xpath('//tr'):
        item = YourItem()
        item["name"] = row.xpath('./td[1]/text()').get()
        item["age"] = row.xpath('./td[2]/text()').get()
        marks_url = row.xpath('./td[3]/a/@href').get()
        yield scrapy.Request(
            url=marks_url,
            meta={"item": item},
            callback=self.parse_marks,
        )

def parse_marks(self, response):
    item = response.meta["item"]
    item["marks] = response.xpath('//your/marks/selector').getall()

    yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...