赞
踩
马上过年拉,现在再家,不是父母催找男(女)朋友
就是父母催相亲,那是一个着急啊!
与其父母一直催,不如我们自己先行动
指不定就遇到自己的心动真爱了呢
今天我们就来用python看看相亲网都有哪些优质妹妹吧~
Python 3.8
Pycharm
import re
import csv
import parsel
import requests
1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
2. 在pycharm中点击Terminal(终端) 输入安装命令
发送请求 获取数据 解析数据 保存数据
1. 发送请求
模拟浏览器对于url地址发送请求
2. 获取数据
获取服务器返回响应数据
开发者工具 ---> response
3. 解析数据
提取我们想要数据内容 详情页ID ---> UID
获取详情页资料信息
4. 发送请求
模拟浏览器对于url地址发送请求
资料详情页url地址
5. 获取数据
获取服务器返回响应数据
网页源代码
6. 解析数据
提取我们想要数据内容
基本资料信息
7. 保存数据
把数据内容保存本地
导入模块
- # 导入数据请求模块
- import requests
- # 导入数据解析模块
- import parsel
- # 导入csv
- import csv
- # 导入正则
- import re
- f = open('data.csv', mode='a', encoding='utf-8', newline='')
- csv_writer = csv.DictWriter(f, fieldnames=['昵称',
- '性别',
- '年龄',
- '身高',
- '体重',
- '出生日期',
- '生肖',
- '星座',
- '籍贯',
- '所在地',
- '学历',
- '婚姻状况',
- '职业',
- '年收入',
- '住房',
- '车辆',
- '照片',
- '详情页',
- ])
- csv_writer.writeheader()
for page in range(1, 11):
- # 伪装模拟
- headers = {
- # User-Agent 用户代理, 表示浏览器基本信息
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
- }
- response = requests.get(url=url, headers=headers)
- print(response)
- # for循环遍历, 把列表里面元素一个一个提取出来
- for index in response.json()['data']['items']:
- # https://love.19lou.com/detail/51593564 format 字符串格式化方法
- link = f'https://love.***.com/detail/{index["uid"]}'
- html_data = requests.get(url=link, headers=headers).text
- # 把获取下来 html字符串数据<html_data>, 转成可解析对象
- selector = parsel.Selector(html_data)
- name = selector.css('.username::text').get()
- info_list = selector.css('.info-tag::text').getall()
- # . 表示调用方法属性
- # 更多代码、教程、资料可添加企鹅裙:582950881领取呐~
- gender = info_list[0].split(':')[-1]
- age = info_list[1].split(':')[-1]
- height = info_list[2].split(':')[-1]
- date = info_list[-1].split(':')[-1]
- # 判断info_list元素个数 当元素个数4个 说明没有体重一栏
- if len(info_list) == 4:
- weight = '0kg'
- else:
- weight = info_list[3].split(':')[-1]
- info_list_1 = selector.css('.basic-item span::text').getall()[2:]
- zodiac = info_list_1[0].split(':')[-1]
- constellation = info_list_1[1].split(':')[-1]
- nativePlace = info_list_1[2].split(':')[-1]
- location = info_list_1[3].split(':')[-1]
- edu = info_list_1[4].split(':')[-1]
- maritalStatus = info_list_1[5].split(':')[-1]
- job = info_list_1[6].split(':')[-1]
- money = info_list_1[7].split(':')[-1]
- house = info_list_1[8].split(':')[-1]
- car = info_list_1[9].split(':')[-1]
- img_url = selector.css('.page .left-detail .abstract .avatar img::attr(src)').get()
- # 把获取下来的数据 保存字典里面 字典数据容器
- dit = {
- '昵称': name,
- '性别': gender,
- '年龄': age,
- '身高': height,
- '体重': weight,
- '出生日期': date,
- '生肖': zodiac,
- '星座': constellation,
- '籍贯': nativePlace,
- '所在地': location,
- '学历': edu,
- '婚姻状况': maritalStatus,
- '职业': job,
- '年收入': money,
- '住房': house,
- '车辆': car,
- '照片': img_url,
- '详情页': link,
- }
- # 更多代码、教程、资料可添加企鹅裙:582950881领取呐~
- csv_writer.writerow(dit)
- new_name = re.sub(r'[\/"*?<>|]', '', name)
- img_content = requests.get(url=img_url, headers=headers).content
- with open('data\\' + new_name + '.jpg', mode='wb') as img:
- img.write(img_content)
- print(dit)
好啦,本文章到这里就结束拉
有喜欢的小伙伴记得给博主一个三连哦~
希望你在学习的路上不忘初心,坚持不懈,学有所成
把时间和精力,放在自己擅长的方向,去坚持与努力,
如果不知道自己擅长什么,就尽快找到它。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。