Python urllib get HTML реквизиты страницы - PullRequest
0 голосов
/ 05 апреля 2020

Я хотел бы спросить, существует ли правильный способ получения (не сохранять / загружать локально) всех файлов, необходимых для правильного отображения данной страницы HTML, и их информации (размер страницы et c). ) с python urllib? Это включает в себя такие вещи, как встроенные изображения, звуки и ссылочные таблицы стилей.

Я искал и обнаружил, что wget может выполнить описанную процедуру, используя флаг --page-requisites, но производительность не такая, и я не хочу скачать что-нибудь локально. Кроме того, флаг -O/dev/null не работает с тем, чего я хочу достичь.

Моя конечная цель - попасть на страницу (размещенную локально), собрать информацию о странице и двигаться дальше.

Любые советы, чтение ссылок приветствуется.

1 Ответ

0 голосов
/ 05 апреля 2020

Я бы порекомендовал Scrapy . Он прост в использовании, и вы можете установить xpath для поиска и извлечения именно той информации, которая вам нужна, например встроенных изображений, звуков и ссылочных таблиц стилей.

Пример для извлечения текста и ссылки

import  scrapy
from ikea.items import IkeaItem
class IkeaSpider(scrapy.Spider):
    name = 'ikea'

    allowed_domains = ['http://www.ikea.com/']

    start_urls = ['http://www.ikea.com/']

    def parse(self, response):
        for sel in response.xpath('//tr/td'):
            item = IkeaItem()
            item['name'] = sel.xpath('//a/text()').extract()#change here
            item['link'] = sel.xpath('//a/@href').extract()

            yield item

Как видите, вы можете установить Xpath для извлечения именно того, что вам нужно.

Например,

image, item['link'] = sel.xpath('//img').extract()

sound, item['link'] = sel.xpath('//audio').extract()

А что касается локального хостинга, он будет работать точно так же, вам просто придется изменить url. Затем вы можете сохранить данные или сделать что хотите.

...