如何在Web爬网程序中添加链接的内部文本?

时间:2019-07-11 02:39:12

标签: python-3.x web-crawler

在网络搜寻器中,我想写超链接内部文本以及url。如何实现?

ex-

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

对于此链接,我想以已爬网文件的形式写入

“示例www.example.com”

我在pyhton中尝试过LinkFinder,在这里我可以获取链接,但无法获取内部文本。

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 :(得分:0)

由于您不仅要获取链接,还希望获取链接内的文本,因此需要使用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”