Python 2.7 Word爬虫脚本未获取目标单词-Python 2.7

Python 2.7 Word爬虫脚本未获取目标单词-Python 2.7,python-2.7,Python 2.7,我是一个编程新手。向世界学习。在第2单元中,我研究了从特定url获取链接的以下代码: import urllib2 def get_page(url): return urllib2.urlopen(url).read() def get_next_target(page): start_link = page.find('<a href=') if start_link == -1: return None, 0 start_quote

我是一个编程新手。向世界学习。在第2单元中,我研究了从特定url获取链接的以下代码:

import urllib2
def get_page(url):
    return urllib2.urlopen(url).read()

def get_next_target(page):
    start_link = page.find('<a href=')
    if start_link == -1:
        return None, 0
    start_quote = page.find('"', start_link)
    end_quote = page.find('"', start_quote + 1)
    url = page[start_quote + 1:end_quote]
    return url, end_quote

def print_all_links(page):
    while True:
        url, endpos = get_next_target(page)
        if url:
            print url
            page = page[endpos:]
        else:
            break

print_all_links(get_page('http://en.wikipedia.org'))
当我运行上面的程序时,我没有得到任何错误,但是也没有打印出来。所以我添加了print关键字-

print print_words_from(get_web('http://en.wikipedia.org/wiki/America'))
当我跑的时候,结果一个也没有。我不明白我错在哪里。我的代码可能是乱七八糟的,但由于没有出现错误,我无法找出它乱七八糟的地方


寻求帮助

我理解这一点,因为你正试图让它在维基百科页面上的每一个单词的实例上打印“美国”一词

你在寻找美国,但这个词写的是美国。a不等于a,这导致您找不到结果

另外,start_单词是烧灼的“a”,所以我调整它来搜索“a”

此时,它正在一次又一次地打印“meric”。我将您的“单词”编辑为从“开始单词”开始,而不是从“开始单词+1”开始。我还将您的“结束词”调整为“结束词+1”,以便打印最后一个字母

它现在正在我的机器上工作。如果您需要任何澄清,请告诉我

def get_web(url):
    return urllib2.urlopen(url).read()

def get_links_from(page):
    start_at = page.find('America')
    if start_at == -1:
        return None, 0

    start_word = page.find('A', start_at)
    end_word = page.find('a', start_word + 1)
    word = page[start_word:end_word+1]
    return word, end_word

def print_words_from(page):
    while True:
        word, endlet = get_links_from(page)
        if word:
            print word
            page = page[endlet:]
        else:
            break

print_words_from(get_web('http://en.wikipedia.org/wiki/America'))

谢谢。它工作得很好。另外,我知道我哪里出错了。非常感谢!
def get_web(url):
    return urllib2.urlopen(url).read()

def get_links_from(page):
    start_at = page.find('America')
    if start_at == -1:
        return None, 0

    start_word = page.find('A', start_at)
    end_word = page.find('a', start_word + 1)
    word = page[start_word:end_word+1]
    return word, end_word

def print_words_from(page):
    while True:
        word, endlet = get_links_from(page)
        if word:
            print word
            page = page[endlet:]
        else:
            break

print_words_from(get_web('http://en.wikipedia.org/wiki/America'))