チュートリアルのWebページの小さな爬虫類を捕まえる


First爬虫類
昨日の午後、自分が急に何かに登りたいと思って手書きで自分の爬虫類を書き始めたのです.私が登ったのは廖雪峰先生のpythonコースです.これは私が前に見たコードで、彼のサイトに登ったものです.自分で登るのもいいと思います.
第一歩模倣
私の最初のステップは人のコードを真似して、それから、自分ではどうしてもできませんでした.問題が山積みになっていて、後で考えたのはpythonのバージョンの問題かもしれません.python 2を使っています.7 .現在python 3は強力な機能のため、ますます多くの人が使用しています.しかし、私はそんなに強力な機能は必要ありません.だからpython 2を使います.7でいいです.第一歩:自分で彼のソースコードと自分で探した例を見て彼の考えを分析する第二歩:自分で資料を探して、練習とテスト
ステップ2
自分の模倣段階から自分が模倣すればするほど混乱していることに気づいた.だから自分でモジュールの書き込みを始めました.まず自分の目標を明確にして、文章の内容を抽出します.この方面から見ると、自分が最初にしたことはホームページを下ろすことです.これはurllibのurlopen()で簡単です.readはページを下ろすことができます(このページは簡単で、複雑であればブラウザを偽装したり、ログインをシミュレートしたりする必要があります)
ページを下ろしてから、自分でページを分析して、ページの中の文章の内容を取り出して、自分で多くの資料を調べて、自分のレベルを結びつけて、この正規表現は比較的に適切です.私は自分で正規表現で多くのフィルタリングをしました.文章の内容、ホームページのネット上のウェブサイトも含まれています.いずれも正則表現で選別され、自分の能力が限られているため、多くのものを分けて作るのが自分に適しています.マルチテスト、一歩一歩.
次は自分のコードを貼り付けます
#coding=utf-8
import re
import urllib2

def webspider(url):
    #      
    Mypage=urllib2.urlopen(url).read()
    #       
    MyItem=re.compile(r"<div class=\"x-wiki-content\">(.*?)</div>",re.S)
    match=MyItem.search(Mypage)
    text=match.group(1)
    #print text
    #        
    text1=text.replace('<p>',' ') #   
    text2=text1.replace('</p>',' ')
    text3=text2.replace('<code>',' ')
    text4=text3.replace('</code>',' ')
    #            &#39;   ’ &gt;    >
    text5=text4.replace('&#39;','\'')
    text6=text5.replace('&gt;','>')
    text7=text6.replace('<li>','*').replace('</li>','')
    #       

    save=open('python.txt','a')
    save.write(text6)
    save.close()

    #print type(text)
    #print text2


def geturl(url):
    #            
    Mypage=urllib2.urlopen(url).read()
    MyITem=re.compile(r'margin-right:-15px;\">(.*?) </ul>',re.S)
    match=MyITem.search(Mypage)
    text=match.group(0)
    #print text
    #print type(text)

    myurl=re.compile(r'<a href="/wiki(.*?)\">',re.S)
    getmyurl=myurl.findall(text)

    dima='http://www.liaoxuefeng.com/wiki'

    #print dima+getmyurl[0]
    #print type(getmyurl[0])
    #        

    for a in getmyurl:
        b=dima+a
        #    
        b1=' '.join(b.split())
        print b1

        #      

        webspider(b1)



if __name__ == '__main__':
        #web='http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000'
        web='http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747381369301852037f35874be2b85aa318aad57bda000'

        geturl(web)