첫 번째 준비 작업입니다
Python 2.7.11: Python 다운로드
Pycharm: Pycharm 다운로드
여기서 python2 및 python3은 현재 동기 릴리스입니다. 여기서는 python2를 환경으로 사용하고 있습니다. Pycharm은 비교적 효율적인 Python IDE이지만 결제가 필요합니다.
기본 구현 아이디어
우선, 대상 웹사이트: Android 마켓
[App]을 클릭합니다. 주요 페이지에 들어가려면:
애플리케이션 인터페이스로 이동한 후 아래 그림의 빨간색 상자는 다음을 나타냅니다.
먼저 주소 표시줄의 URL에 주목한 다음, 무료 다운로드 버튼에 주목하고, 그 다음 하단의 페이지 넘김 옵션에 주목하세요. "무료 다운로드" 버튼을 클릭하면 해당 앱이 즉시 다운로드되므로 클릭하여 다운로드 링크를 받아 앱을 직접 다운로드하는 것이 좋습니다.
크롤러 작성
첫 번째 해결해야 할 사항: 위에서 언급한 다운로드 링크를 어떻게 얻나요? 여기서는 브라우저가 웹 페이지를 표시하는 방법에 대한 기본 원칙을 소개해야 합니다. 간단히 말해서, 브라우저는 HTML 및 기타 코드를 받으면 해당 규칙에 따라 구문 분석하고 렌더링하여 페이지를 볼 수 있도록 하는 파서와 유사한 도구입니다.
저는 여기서 Google Chrome을 사용하고 있습니다. 페이지를 마우스 오른쪽 버튼으로 클릭하고 "검사"를 클릭하면 웹페이지의 원본 HTML 코드를 볼 수 있습니다.
보세요. 멋진 HTML 코드가 보이더라도 걱정하지 마세요. Google Chrome의 검토 요소에는 페이지 컨트롤에 해당하는 HTML 코드를 찾는 데 도움이 되는 유용한 기능이 있습니다.
위치:
위 그림과 같이 위 직사각형 박스 안의 작은 화살표를 클릭한 후, 페이지에서 해당 위치를 클릭하면 오른쪽 HTML 코드가 자동으로 위치가 지정되어 강조 표시됩니다.
다음으로 다운로드 버튼에 해당하는 HTML 코드를 찾습니다.
버튼에 해당하는 코드에 해당 다운로드가 있는 것을 볼 수 있습니다. 링크: [/ appdown/com.tecent.mm], 접두어를 더한 전체 다운로드 링크는 http://apk.hiapk.com/appdown/com.tecent.mm
Python을 먼저 사용하십시오. 전체 페이지의 HTML을 얻는 것은 매우 간단합니다. ""를 사용하고 해당 URL을 입력하기만 하면 됩니다. requests.get(url)
def geteveryapp(self,source): everyapp = re.findall('(<li class="list_item".*?</li>)',source,re.S) #everyapp2 = re.findall('(<p class="button_bg button_1 right_mt">.*?</p>)',everyapp,re.S) return everyapp
def getinfo(self,eachclass): info = {} str1 = str(re.search('<a href="(.*?)">', eachclass).group(0)) app_url = re.search('"(.*?)"', str1).group(1) appdown_url = app_url.replace('appinfo', 'appdown') info['app_url'] = appdown_url print appdown_url return info
豁然开朗,我们可以在每次的请求中替换URL中对应的id值实现翻页。
def changepage(self,url,total_page): now_page = int(re.search('pi=(\d)', url).group(1)) page_group = [] for i in range(now_page,total_page+1): link = re.sub('pi=\d','pi=%s'%i,url,re.S) page_group.append(link) return page_group
爬虫效果
关键位置说完了,我们先看下最后爬虫的效果:
在TXT文件中保存结果如下:
直接复制进迅雷就可以批量高速下载了。
附上全部代码
#-*_coding:utf8-*- import requests import re import sys reload(sys) sys.setdefaultencoding("utf-8") class spider(object): def __init__(self): print u'开始爬取内容' def getsource(self,url): html = requests.get(url) return html.text def changepage(self,url,total_page): now_page = int(re.search('pi=(\d)', url).group(1)) page_group = [] for i in range(now_page,total_page+1): link = re.sub('pi=\d','pi=%s'%i,url,re.S) page_group.append(link) return page_group def geteveryapp(self,source): everyapp = re.findall('(
总结
选取的目标网页相对结构清晰简单,这是一个比较基本的爬虫。代码写的比较乱请见谅,以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有问题大家可以留言交流。
更多앱 다운로드 링크를 크롤링하는 Python 방법相关文章请关注PHP中文网!