博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取我主良缘,获取个人图片及其信息
阅读量:6333 次
发布时间:2019-06-22

本文共 3503 字,大约阅读时间需要 11 分钟。

网站:

工具:python3 ,pycharm ,火狐浏览器自带F12功能

目标:获取妹子信息,将图片与个人信息分开保存在不同文件夹下

步骤:分为一下四步:

  1. 设置条件
  2. 解析网页
  3. 下载图片
  4. 保存信息
# coding=utf-8import osimport requests#设置条件def quary_age():    age = int(input("请输入期望对象年龄(如20):"))    if 21 <= age <= 30:        startage = 21        endage = 30    elif 31 <= age <= 40:        startage = 31        endage = 40    elif 41 <= age  <=50:        startage = 41        endage = 50    return startage,endage;def quary_sex():    sex = input("请输入期望对象的性别(如女):")    if sex == "男":        gender = 1    else:        gender = 2    return gender;def quary_height():    height = int(input("请输入期望对象身高(如163):"))    if 151 <= height <161:        startheight = 151        endheight = 160    elif 161 <= height <171:        startheight = 161        endheight = 170    elif 171 <= height <181:        startheight = 171        endheight = 180    elif 181 <= height <191:        startheight = 181        endheight = 190    else:        startheight = 0        endheight = 0    return startheight,endheight;def quary_salary():    money = int(input("请输入期望对象薪资(如2000):"))    if 2000 <= money < 5000:        salary = 2    elif 5000 <= money <10000:        salary = 3    elif 10000 <= money <20000:        salary = 4    elif money >= 20000:        salary = 5    else:        salary = 0    return salary;#查询符合条件的数据def quary_data():    print ("请输入你的筛选条件,开始本次姻缘:")    startage, endage = quary_age() #年龄    gender = quary_sex()   #性别    startheight, endheight = quary_height() #身高    salary = quary_salary() #薪资    for i in range(1,11):        json = get_one(startage, endage,gender,startheight, endheight,salary,i)        for item in json['data']['list']:            save_image(item)#保持照片            save_info(item)#保存个人信息def save_image(item):    if not os.path.exists('image'):        os.mkdir('image')    image_url = item['avatar']    response = requests.get(image_url)    if response.status_code == 200:        file_path = 'image/{}.jpg'.format(item['username'])        if not os.path.exists(file_path) : #防止图片重复保存            print("正在获取%s的信息"%item['username'])            with open(file_path,'wb') as f:                f.write(response.content)#content获取图片内容    else:        print("已经保存过当前信息")def save_info(item):    if not os.path.exists('info'):        os.mkdir('info')    with open('info/'+item['username']+'.txt','w',encoding = 'utf-8') as f:        f.write('名字:'+item['username']+',城市:'+item['city']+',身高:'+item['height']+',学历:'+item['education']+',个人签名:'+item['monolog']+',出生年份:'+item['birthdayyear'])#接受参数,返回json数据def get_one(startage, endage,gender,startheight, endheight,salary,page):    headers = {'Referer':'http://www.lovewzly.com/jiaoyou.html',               'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/61.0'}    base_url = 'http://www.lovewzly.com/api/user/pc/list/search?startage={}&endage={}&gender={}&cityid=60&startheight={}&endheight={}&marry=1&salary={}&page={}'.format(startage,endage,gender,startheight,endheight,salary,page)    while True:        try:            response = requests.get(base_url,headers)            if response.status_code == 200:                return response.json()#也可以返回response.text,但要转码        except:            return Nonequary_data()#http://www.lovewzly.com/api/user/pc/list/search?# startage=21&endage=30&gender=2&cityid=60&startheight=151&endheight=160&marry=1&salary=2&page=1

效果如下:

说明:条件设置有很多,像其他的如星座、学历、生肖我都没设定,如果需要,可以自己添加,城市我默认搜厦门,如果想搜其他城市,可以F12自己查看其他城市的value,自己修改。

转载于:https://www.cnblogs.com/longwhite/p/10397741.html

你可能感兴趣的文章
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
Highcharts X轴纵向显示
查看>>
windows 注册表讲解
查看>>
【算法】论平衡二叉树(AVL)的正确种植方法
查看>>
基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
查看>>
【原】东拼西凑PBR(1):PBR基础
查看>>
react 从零开始搭建开发环境
查看>>
scala recursive value x$5 needs type
查看>>
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>
ASCII 在线转换器
查看>>
Linux内核同步:RCU
查看>>