파충류 의 수양 - 블 로그 편

7891 단어 파충
  • 이번 파충류 의 대상 은 http://blog.csdn.net/sinyu890807 의 글
  • 이다.
  • python 의 기초 http://www.cnblogs.com/courtier/p/4285897.html),urllib 기본 사용, http 프로 토 콜 이해
  • 우선, 서버 가 403 을 알 리 지 않도록 무 작위 User - agent 목록 을 설정 해 야 합 니 다.
  • #user_agent
    
        _header = ['Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30'
    
              ,'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0',
    
              'Mozilla/5.0 (Windows; U; Windows NT 5.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12'];
  • 다음 에 무 작위 로 메시지 헤드 를 설정 하 라 고 한다.
  • def connectURL(self,page):
    
            print "    ....."
    
    
    
            head = random.choice(self._header);
    
    
    
            req = urllib2.Request(page);
    
    
    
            req.add_header('User-Agent',self._header);
    
            req.add_header('Host','blog.csdn.net');
    
            req.add_header('Referer','http://blog.csdn.net/');
    
            req.add_header('GET',page);
    
            #       
    
            return urllib2.urlopen(req).read();
  • 파충류 가 기어 오 르 는 내용 을 정규 로 우리 가 필요 로 하 는 것 을 얻는다.
  • def parseTolist(self,info):
    
            li = [];
    
            reg = r'<span class="link_title"><a href="(/guolin_blog/article/details/[0-9]+)">([^v]*)(?=</a>)';
    
            pat = re.compile(reg);#    
    
             Blog_Link = re.findall(pat,info);
    
            #print Blog_Link;
    
            for i in Blog_Link:
    
                msg = i[1].replace("\r
    ",""); li.append(msg+':'+'http://blog.csdn.net'+i[0]); return li;
  • 아래 방법 을 호출 하 십시오. (기본 값 은 "D: \ \ python \ \ \ \ 링크. txt"):
  • def wisdomBug(self):
    
             #    
    
                for k in range(1,self.pagecount):
    
                page = self.url+str(k);
    
                print '    :'+page;
    
                #parese--    
    
                info = self.connectURL(page);
    
                li = self.parseTolist(info);
    
                #save --  
    
                for i in li:
    
                    f = open("D:\\python\\link.txt",'a');
    
                    f.write(i+os.linesep*2);
    
                    f.close();
  • 마지막 으로 우 리 는 우리 의 집행 효 과 를 볼 수 있다.
  • QQ图片20150211234636 QQ图片20150211234725
    소스 코드: https://github.com/aliencool/Python/blob/master/connect.py

  • 잔소리:

  •         만약 에 일부 사이트 의 동적 User - agent 를 사용 할 수 없다 면 더욱 고 급 스 러 운 '대리 IP' 로 사용 해 야 합 니 다. 사실은 Python 으로 파충 류 를 타면 많은 일 을 할 수 있 습 니 다. 예 를 들 어...
            12306 차 표를 찾 아 보고 뉴스 기 사 를 올 라 갑 니 다. 제 이번 박문 은 개인 적 으로 입문 단계 일 뿐 입 니 다. 그리고 좋 은 파충류 프레임 워 크 는 더 많은 정 보 를 얻 을 수 있 고 효율 적 입 니 다 (다 중 스 레 드).
            우리 가 함께 더 깊이 파고 들 어 더 좋 은 박문 을 제공 할 수 있 기 를 바란다.

    좋은 웹페이지 즐겨찾기