Разложение HTML к тексту ссылки и цели

Мне кажется, что вы пытаетесь достичь чего-то подобного:

def batch_generator(image_paths, batch_size, isTraining):
    your_code_here

Вызов генератора - вместо того, что у вас есть:

index = next(batch_generator(train_dataset, 10, True))

:

index = iter(batch_generator(train_dataset, 10, True))
index.__next__()
5
задан Alan Moore 22 November 2009 в 09:20
поделиться

4 ответа

Используйте Красивый Суп. Выполнение его самостоятельно более трудно, чем это смотрит, Вы будете более обеспеченным использованием проверенного на практике модуля.

Править:

Я думаю, что Вы хотите:

soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url).read())

Между прочим, это - плохая идея попытаться открытие URL там, как будто это идет не так, как надо, это могло стать ужасным.

РЕДАКТИРОВАНИЕ 2:

Это должно показать Вам все ссылки на странице:

import urlparse, urllib
from BeautifulSoup import BeautifulSoup

url = "http://www.example.com/index.html"
source = urllib.urlopen(url).read()

soup = BeautifulSoup(source)

for item in soup.fetchall('a'):
    try:
        link =  urlparse.urlparse(item['href'].lower())
    except:
        # Not a valid link
        pass
    else:
        print link
8
ответ дан 18 December 2019 в 07:32
поделиться

Вот пример кода, показывая получение атрибутов и содержания ссылок:

soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url))
for link in soup.findAll('a'):
    print link.attrs, link.contents
6
ответ дан 18 December 2019 в 07:32
поделиться

Похож на Вас, имеют две проблемы там:

  1. link.contents, не link.content
  2. attrs является словарем, не строкой. Это содержит пар значения ключа для каждого атрибута в элементе HTML. link.attrs ['href'] получит Вас, что Вы, кажется, ищете, но Вы хотели бы перенести это в проверку в случае, если Вы сталкиваетесь с тегом без атрибута href.
4
ответ дан 18 December 2019 в 07:32
поделиться

Хотя я предполагаю, что другие могли бы быть корректными в указании на Вас к использованию Красивого Супа, они не могли бы, и пользование внешней библиотекой могло бы быть в широком масштабе чрезмерным в Ваших целях. Вот regex, который сделает то, что Вы спрашиваете.

/<a\s+[^>]*?href="([^"]*)".*?>(.*?)<\/a>/

Вот то, чему это соответствует:

'<a href="url" close="true">text</a>'
// Parts: "url", "text"

'<a href="url" close="true">text<span>something</span></a>'
// Parts: "url", "text<span>something</span>"

Если Вы хотели получить просто текст (например: "textsomething" во втором примере выше), я только что выполнил другой regex по нему для разделения чего-либо между угловыми скобками.

3
ответ дан 18 December 2019 в 07:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: