Как добавить внутренний текст ссылки в Web Crawler? - PullRequest
0 голосов
/ 11 июля 2019

В веб-сканере я хочу написать внутренний текст гиперссылки вместе с URL-адресом. Как этого добиться?

ex-

<a href="www.example.com">Example</a> 

по этой ссылке я хочу написать в просканированном файле как

"Пример www.example.com"

Я пробовал LinkFinder в Pyhton, здесь я могу получить ссылку, но не могу получить внутренний текст.

from urllib.request import urlopen
from link_finder import LinkFinder

def gather_links(page_url):
        html_string = ''
        try:
            response = urlopen(page_url)
            if 'text/html' in response.getheader('Content-Type'):
                html_bytes = response.read()
                html_string = html_bytes.decode("utf-8")
            finder = LinkFinder('',page_url)
            finder.feed(html_string)
        except Exception as e:
            print(str(e))

        return finder.page_links()

1 Ответ

0 голосов
/ 15 июля 2019

Поскольку вы хотите получить не только ссылку, но и текст внутри ссылки, вам необходимо использовать библиотеку HTML-анализатора.Один из этих двух должен работать для вас:

link = '<a href="www.example.com">Text</a>'

import lxml.html

target = lxml.html.fromstring(link)

или

from bs4 import BeautifulSoup as bs

soup = bs(link,'lxml')
target = soup.find('a')

И затем, используя любую библиотеку:

my_str = target.text+' '+target.get('href')
my_str

Вывод:

'Текст www.example.com'

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