Python网络爬虫实战-抓取百合网真实相亲数据

简介: 百合网是一个相亲网站,里面拥有一些真实的妹子数据,如何抓取该网站的数据内容呢,接下来随我一探糗竟吧!

第一步:分析网页流程,确定目标

进入百合网首页,分析要抓取的数据内容

image.png

进入到首页推荐表的妹子界面 设置好筛选的条件;可以看到更多展示的妹子。这也是我们接下来要抓取的。

image.png

每张图片点开后 都有相应的详细介绍;比如我们要抓取的数据是 【名字、年龄、身高 、学历、婚姻使、自我介绍等】

image.png

第二步:请求网络网站,获取网页数据

import requests

import json

from lxml import etree

import pandas as pd

cookies = {

   'orderSource': '10130301',

   'accessID': '20220525160212300807',

   'lastLoginDate': 'Wed%20May%2025%202022%2016%3A02%3A12%20GMT+0800%20%28%u4E2D%u56FD%u6807%u51C6%u65F6%u95F4%29',

   'accessToken': 'BH1653465732565956999',

   'Hm_lvt_5caa30e0c191a1c525d4a6487bf45a9d': '1653465735',

   'tempID': '2328584815',

   'NTKF_T2D_CLIENTID': 'guest46B34559-18E8-1BB5-1B84-FA3D400112EF',

   'AuthCookie': '4BFFD62B611D896E561FCDFCA2AC50840C888FC5354A7C8F02C453B1F486849BA543E98E4E32B2920B4F70C256EF513E1B711A8BC10FC1DF9BF608CB30C4F468740A0A3FA06C20992D2ABCEAC15741654D3542C75E463CD2',

   'AuthMsgCookie': 'DF8460C627701442B7016AED70C6828D82D7E467447C72E69E49D2A6B8815481FFB474631E375FBDED51DD0A0BDFCBB06E580573940DA59132515B2BEA677360104068C9C41BBE1272765712500DB8532613ED82D5EDBD2F',

   'GCUserID': '307535896',

   'OnceLoginWEB': '307535896',

   'LoginEmail': '15565222558%40mobile.baihe.com',

   'userID': '307535896',

   'spmUserID': '307535896',

   'nTalk_CACHE_DATA': '{uid:kf_9847_ISME9754_307535896,tid:1653465759744600}',

   'AuthTokenCookie': 'bh.1653466069969_1800.04BE6CEADC682D6A9E8630E1E15B85A5190CC534.bhkOo8o.6',

   'noticeEvent_307535896': '25',

   'hasphoto': '1',

   'AuthCheckStatusCookie': '745B4B48B7EA1CC7BFDEB8D850A700D714D1D3015978705726A127B203C4931405E9D878DCC812E7',

   'tgw_l7_route': '0dd999c63b312678b82b8668ba91d54d',

   'Hm_lpvt_5caa30e0c191a1c525d4a6487bf45a9d': '1653466330',

   '_fmdata': 'Ewvc1t%2BSwfMTVNcjWwP%2B0uotvg7udIoQjotCEf9E17Cze%2FAmFlYoO9ck5kXksZIVSuxOcxl68ouCRX%2FOxc4Mjv2RNI6Ek7XQ8L5kbQaMQeA%3D',

}

headers = {

   'Connection': 'keep-alive',

   'Pragma': 'no-cache',

   'Cache-Control': 'no-cache',

   'Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01',

   'X-Requested-With': 'XMLHttpRequest',

   'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',

   'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

   'Origin': 'https://search.baihe.com',

   'Sec-Fetch-Site': 'same-origin',

   'Sec-Fetch-Mode': 'cors',

   'Referer': 'https://search.baihe.com/',

   'Accept-Language': 'zh-CN,zh;q=0.9',

}

data = {

   'minAge': '19',

   'maxAge': '28',

   'minHeight': '155',

   'maxHeight': '170',

   'education': '1-7',

   'loveType': '',

   'marriage': '',

   'income': '1-6',

   'city': '8611',

   'nationality': '',

   'occupation': '',

   'children': '',

   'bloodType': '',

   'constellation': '',

   'religion': '',

   'online': '',

   'isPayUser': '',

   'isCreditedByAuth': '',

   'hasPhoto': '1',

   'housing': '',

   'car': '',

   'homeDistrict': '',

   'page': '1',

   'sorterField': '1',

}

response = requests.post('https://search.baihe.com/Search/getUserID?&jsonCallBack=jQuery183046819546986330085_1653466343209', cookies=cookies, headers=headers, data=data).text

data = response.lstrip('jQuery183046819546986330085_1653466343209(').rstrip(');')

data=json.loads(data)

data = data['data']

print(data)

image.png

第三步:筛选、解析数据 提取

# 存储数据
name=[]

age=[]

hg=[]

x_l=[]

city=[]

h_p=[]

content=[]

for item_id in data:
   # 拼接 url
   url = 'https://profile1.baihe.com/?oppID='+item_id

   response_2 = requests.get(url,headers=headers, cookies=cookies).text

   html=etree.HTML(response_2)

   # 姓名
   name.append(html.xpath('//div[@class="name"]/span[2]/text()')[0])

   # 年龄
   age.append(html.xpath('//div[@class="inter"]/p/text()')[0])

   # 身高
   hg.append(html.xpath('//div[@class="inter"]/p/text()')[1])

   # 学历
   x_l.append(html.xpath('//div[@class="inter"]/p/text()')[2])

   # 所在城市
   city.append(html.xpath('//div[@class="inter"]/p/text()')[3])

   # 是否婚配
   h_p.append(html.xpath('//div[@class="inter"]/p/text()')[4])

   # 自我介绍
   content.append(html.xpath('//div[@class="intr"]/text()')[0])

   print(name,age,hg,x_l,city,h_p,content)

image.png

第四步:持久化保存数据

df = pd.DataFrame()

df['网名']=name

df['年龄']=age

df['身高']=hg

df['学历']=x_l

df['所在城市']=city

df['是否婚配']=h_p

df['自我介绍']=content

df.to_excel('百合网Demo.xls',encoding='utf-8',index=False)

image.png

如此即可获取所有妹子数据,更多的信息,可以按照我的这种方式自己尝试获取呀!

有收获的话 ,可以点赞、关注奥 。

相关文章
|
1天前
|
数据采集 机器学习/深度学习 前端开发
【好书推荐3】Python网络爬虫入门到实战
【好书推荐3】Python网络爬虫入门到实战
9 0
|
2天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
8 1
|
3天前
|
存储 JSON 数据挖掘
python序列化和结构化数据详解
python序列化和结构化数据详解
12 0
|
3天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
4天前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
5天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
15天前
|
数据采集 XML 数据处理
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页内容并进行简单的数据处理。通过学习本文,读者将了解Web爬虫的基本原理和Python爬虫库的使用方法。
|
1天前
|
数据采集 安全 JavaScript
【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程
8 0
|
1天前
|
数据采集 JSON API
【2024-简洁版】python爬虫 批量查询自己所有CSDN文章的质量分:方便快速上手修改代码
【2024-简洁版】python爬虫 批量查询自己所有CSDN文章的质量分:方便快速上手修改代码
8 0
|
4天前
|
数据采集 Web App开发 Java
Python 爬虫:Spring Boot 反爬虫的成功案例
Python 爬虫:Spring Boot 反爬虫的成功案例