>  기사  >  백엔드 개발  >  python3은 WeChat 기사를 크롤링합니다.

python3은 WeChat 기사를 크롤링합니다.

巴扎黑
巴扎黑원래의
2017-07-21 13:46:321541검색

전제 조건:

python3.4

windows

기능: Sogou의 WeChat 검색 인터페이스를 통해 관련 WeChat 기사를 검색하고 제목 및 관련 링크를 Excel 테이블로 가져옵니다.

지침: xlsxwriter 모듈이 필요하며 프로그램 작성 시간은 2017/7/11, 나중에 프로그램을 사용할 수 없는 경우 웹사이트에서 관련 변경을 했기 때문일 수 있습니다. 프로그램은 40줄 이상의 댓글이 제거되어 비교적 간단합니다.

주제:

아이디어: 초기 URL 열기 --> 정기적으로 제목 및 링크 가져오기 --> 두 번째 단계에서 페이지 루프 변경 --> 얻은 제목과 링크를 Excel로 가져옵니다. 크롤러의 단계는 먼저 수동으로 해야합니다(가십)

위에서 언급한 웹사이트에 입력: "이미지 인식", 검색 등을 입력하면 웹사이트가 ""로 변경되고 중요 매개변수로 빨간색으로 표시됩니다. type=1, 당분간 관계없이 공식 계정 검색입니다. query='검색 키워드', 키워드가 암호화되어 있고, 숨겨진 매개변수가 있습니다. page=1

2번째로 점프하면. 페이지를 보면 ""

알겠습니다. URL을 얻을 수 있습니다

1 url = 'http://weixin.sogou.com/weixin?type=2&query='+search+'&page='+str(page )

search는 검색할 키워드이며 quote() 인코딩을 사용하여 삽입할 수 있습니다.

1 search = urllib.request.quote(search)

페이지는 루핑에 사용됩니다

1 for page in range(1,pagenum+1):
2     url = 'http://weixin.sogou.com/weixin?type=2&query='+search+'&page='+str(page)
전체 URL을 얻었습니다. URL을 가져와 데이터 가져오기(오프너 개체 생성, 헤더() 추가)

1 import urllib.request
2     header = ('User-Agent','Mozilla/5.0')
3     opener = urllib.request.build_opener()
4     opener.addheaders = [header]
5     urllib.request.install_opener(opener)
6     data = urllib.request.urlopen(url).read().decode()
페이지 콘텐츠를 가져오고 정규식을 사용하여 관련 데이터 가져오기

1 import re
2     finddata = re.compile('<a target="_blank" href="(.*?)".*?uigs="article_title_.*?">(.*?)</a>').findall(data)
3     #finddata = [('',''),('','')]
간섭 항목이 있습니다(링크: 'amp;') 및 관련 없는 항목(제목: '<...> ;<....>'), 교체()를 사용하여

1 title = title.replace('<em><!--red_beg-->','')
2 title = title.replace('<!--red_end--></em>','')
1 link = link.replace('amp;','')
을 해결하려면 목록에서 처리된 제목과 링크

1 title_link.append(link)
2 title_link.append(title)
검색된 제목과 링크를 얻었으니 다음으로 Excel을 가져오세요

Excel을 먼저 만드세요

1 import xlsxwriter
2 workbook = xlsxwriter.Workbook(search+'.xlsx')
3 worksheet = workbook.add_worksheet('微信')
title_link의 데이터를 Excel로 가져오세요

1 for i in range(0,len(title_link),2):
2     worksheet.write('A'+str(i+1),title_link[i+1])
3     worksheet.write('C'+str(i+1),title_link[i])
4 workbook.close()
전체 코드:

으르르르르

위 내용은 python3은 WeChat 기사를 크롤링합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.