您的当前位置:首页正文

Python爬虫学习(七)爬取淘女郎

来源:图艺博知识网
先来一波福利 扒图结果

话不多说,直接开车!

分析美人库页面

然后,我们随便查看一个美女的首页,比如:

按照我们之前的爬取经验,这个地址应该能够从一开始的页面找到,毕竟是从那跳转过来的,于是,我们在页面源码中查找:

竟然没有?!不论怎么查找,都找不到。这是什么情况?
答案是Ajax
我们用Chrome的开发者工具查看一下,或许能找到答案。

Chrome开发者工具

从图中,我们可以看到好多请求,点击XHR选项卡,

有两个Ajax请求,点击第二个(第一个是第一页的Ajax)查看:

看到了宴宴的信息,原来之前看到的图片个人信息啥的,都是用Ajax加载过来的!

分析个人主页

分析个人相册页

个人相册

当我们查看个人相册页源码时,又发现:

什么都没有!老一套,于是我们再次打开了Chrome开发者工具,

果然,又是Ajax请求!
这也提醒我们只要,我们获得了这个请求的响应内容,爬取图片什么的,都不是事儿了!

查看头部信息

user_id(XXXXXX)怎么弄

经过孜孜不倦的分析,我们终于发现,原来到达其他网页,比如个人首页,相册页等,最重要的就是user_id那一串数字了,那么那串数字怎么来的呢?

这就得回到我们最开始分析的地方,在分析美人库的时候其实已经得到了:

得到了user_id,再加上我们对URL的分析,我们可以随心所欲了,想爬哪爬哪!

最后附上部分源码,其他的可以根据自己的需求补充或修改:

mport json
import random
import urllib.request
from urllib.request import Request
import chardet
import urllib.parse

user_agent = [
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2;  CLR 2.0.50727;  CLR 3.5.30729;  CLR 3.0.30729; Media Center PC 6.0;  
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
]

def getMMData(url,currentPage=0):
    formdata = {
        'q':'',
        'viewFlag':'A',
        'sortType':'default',
        'searchStyle':'',
        'searchRegion':'city:',
        'searchFansNum':'',
        'currentPage': currentPage,
        'pageSize': '100'
    }
    formdata = urllib.parse.urlencode(formdata)
    headers = {'User-Agent': random.choice(user_agent)}
    requ = Request(url,data=bytes(formdata,'utf-8'),headers=headers)
    data = urllib.request.urlopen(requ).read()
    data = data.decode(chardet.detect(data)['encoding'])
    dataToDict = json.loads(data)
    return dataToDict['data']['searchDOList']

# 获取ID
def getMMID(data):
    ID = []
    for i in data:
        ID.append(i['userId'])
    return ID

if __name__ == '__main__':
    url = 
    # for i in getMMData(url,1):
    #     print(i['userId'])
    data = getMMData(url)
    ID = getMMID(data)
    print(ID)

然后再次附上扒图结果:

以上。

Top