Dynami c URL-сканирование с использованием python Scrapy - PullRequest
1 голос
/ 10 января 2020

Используя python scrapy, я могу сканировать отдельные данные c url, но как сканировать динамические c url? как https://www.britannica.com/place/Mumbai, https://www.britannica.com/place/Pune аналогично.

Рабочий код для одного статуса c Страница

import scrapy 
class GetTestSpider(scrapy.Spider):
    name = "testspeder"
    start_urls = ["https://www.britannica.com/place/Mumbai"]

    def parse(self,response):
    """Function to process search results page"""
    for site in response.xpath("//div[@class='infinite-pagination-container container']"):
        item = {
            'city': site.xpath(".//h1/text()").extract_first(default='').strip(),
            'writtenby': site.xpath(".//div[@class='md-byline']/div[@class='written-by']/span/text()").extract_first(default='').strip(),
            'alternativename': site.xpath(".//div[@class='md-alternate-titles']/text()").extract_first(default='').strip(),
        }
        yield item   

1 Ответ

2 голосов
/ 10 января 2020

Вы можете выдать Запрос в вашей функции parse.

Этот запрос будет затем обработан другим, например:

<your parse()>
...
if item["url_addres"]:
    yield Request(
        url=item["url_addres"], 
        callback=self.your_func_for_parsing, 
        meta={
            'item': item, 
            'dont_redirect': True,
            'handle_httpstatus_list': [302]
            }
    )

def your_func_for_parsing(self, response):
    item = response.meta['item']
    ...
    <do the job>

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