【问题标题】:Get all internal links from all pages in a Domain获取域中所有页面的所有内部链接
【发布时间】:2016-04-19 12:57:32
【问题描述】:

我正在寻找一种代码,该代码将通过迭代找到的所有内部链接 [绝对和相对] 从网站获取所有内部链接。

到目前为止,我设法写了这么多,但无法在程序中构建正确的逻辑。

import requests, csv, time
from lxml import html
from collections import OrderedDict

links = []
domain = 'bunchball.com'
base_link = 'http://www.bunchball.com/'
unique_list = []

def get_links(base_link):
    r = requests.get(base_link)
    source = html.fromstring(r.content)
    link = source.xpath('//a/@href')
    for each in link:
        each = str(each)
        if domain in each:
            links.append(each)
        elif each.startswith('/'):
            links.append(base_link+each)
            unique_list.append(each)
        else:
            pass

get_links(base_link)

#while 

for each1 in list(OrderedDict.fromkeys(links)):
    get_links(each1)
    while each1 not in unique_list:
        unique_list.append(each1)
        get_links(each1)

【问题讨论】:

    标签: python python-2.7 python-requests


    【解决方案1】:

    尝试使用 mechanize 以获得更简单的解决方案:

    from mechanize import Browser
    
    br = Browser()
    br.open("http://www.bunchball.com/")
    list_of_links=[link for link in br.links()]
    

    【讨论】:

    • 我只查看 [absolute & relative] 的内部链接,您的解决方案也将收获外部链接,并且仅针对 1 个引入的 url。我想访问每个内部 url foudn 中的所有嵌套 url。
    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 2011-01-15
    • 2023-04-02
    • 2014-01-10
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多