요청과 학사와 간단한 예를 크롤링 네트워크 DAI 하우스를합니다.
만 메모와 함께.
1 # !는 / usr / 빈 / python3 2 개 세 수입 요청 4 에서 BS4의 수입 BeautifulSoup로 5 오기 다시 6 7 개 클래스 wdzj_spider : 8 데프 요청 (자체, URL) : 9 헤더 = { ' 사용자 에이전트 ' : " 모질라 / 5.0 ( 윈도우 NT 6.1; WOW64) AppleWebKit / 537.1 (KHTML, 도마뱀 붙이 등) 크롬 / 22.0.1207.1 사파리 / 537.1 " } 10 리턴 requests.get (URL, 헤더 = 헤더) (11) (12) DEFgetLinkFromPage (자기, pingtaiLink) : 13이다 pingtaiHtml = self.request (pingtaiLink) 14 #의 기본적 문제를 코딩 수동 트랜스 코더 필요 15 txtUTF8 = STR (pingtaiHtml.content를 ' . UTF-8 " ) 16 briefSec가 BeautifulSoup로 (txtUTF8를 = " LXML " , from_encoding = " UTF-8 " ) .find ( " DIV " 은 class_ = " CEN-ZK " ) . 17 인쇄 ( " 소개 {0} = " .format (briefSec.get_text ())) (18)이다 .도 19 DEFgetAllPage (자기) 20 startUrl = ' https://www.wdzj.com/dangan/search?filter=&sort=1¤tPage=1 ' 21 mainHtml = self.request (startUrl) 22 pageStr = BeautifulSoup로 (mainHtml.text, " LXML " ) .find ( " 범위 " , class_은 = " 전부 " )는 .text 23 searchObj re.search = (r에 " 1 / ([0-9] +) ' |, pageStr, re.M re.I) 24 PAGECOUNT = searchObj.그룹 (1 ) 25 26 startUrl = 'https://www.wdzj.com/dangan/search?filter=&sort=1¤tPage= ' 27 base을 = ' https://www.wdzj.com ' 28 29 인쇄 ( " PAGECOUNT = {0} " .format (PAGECOUNT )) (30) 에 대한 I 의 범위 (1, INT (PAGECOUNT) +1 ) : 31 # 범위 ((1)의 I 2) : 32 urlPage = startUrl + STR (I) 33 pageHtml = self.request (urlPage) 34 pageStrs = BeautifulSoup로 (pageHtml.text, " LXML " ) .find_all ( '' 텍스트 = " 프로필보기 ' ) 35 대 에 pageStrs : 36 인쇄 ( " 프로필보기 " ) 37 self.getLinkFromPage (base을 A + [ ' href를는 ' ]) 38 39 40 IF __name__ == ' __main__ ' : 41은 W = () wdzj_spider 42은 w.getAllPage ()