链家二手房数据自动化点选验证码

前言:本次分享目的为研究 DrissionPage的相关使用以及xpath/css语法的应用及其点选验证码的机制,切勿作为商业目的,恶意采集或者网站,自觉遵守相关法律法规

网址:

aHR0cHM6Ly9jcy5saWFuamlhLmNvbS9lcnNob3VmYW5nL3BnMS8=


点击下一页后弹出人机验证

点击开始验证后 会有三种类型点选验证码

点字、点图、按语序

1、环境配置

pip install DrissionPage//安装模块

官方文档:https://www.drissionpage.cn/browser_control/intro

新建一个临时py文件,然后填入个人电脑里面的浏览器可执行文件路径,然后运行即可

python 复制代码
dp = ChromiumPage()
path = r'D:\chrome\chrome.exe'# 按需修改为实际;浏览器路径
ChromiumOptions.set_browser_path(path).save()

保存后,以后都不需要,配置路径了

2. 访问网站
python 复制代码
from DrissionPage import ChromiumPage, ChromiumOptions
dp = ChromiumPage()
dp.get('https://cs.lianjia.com/ershoufang/pg1/')# 按需修改
3. 获取数据

元素定位:(静态网页)

监听数据:(f动态网页/专门的数据接口)

  • 通过元素面板中对应标签

把每个房源数据当作整体->对应的元素标签

每个房源数据内容都在li标签中存在

利用CSS/Xpath匹配表数据标签

我这里用的是css

python 复制代码
dp.eles('css:')# 元素定位使用css选择器匹配多个标签

可以查看右侧css选择器语法,但不通用

4. 保存数据
python 复制代码
# 导入CSV模块
import csv
# 创建文件对象
f=open('data.csv',mode='w',encoding='utf-8',newline='''
# 字典写入的方法fieldnames->字段名,使用dit中键
csv_writer=csv.DictWriter(f, fieldnames=[])
# 写入表头
csv_writer.writeheader()
# 数据
dit={}
# 写入数据
csv_writer.writerow(dit)
5.翻页处理

先触发人机验证 然后载触发点选

自动化点选识别
  1. 判断页面是否有验证码

有验证码的链接有特点的

python 复制代码
url = dp.url
if'captcha' in url:
     # 验证码识别
     print('有验证码')
else:
     # 正常采集数据
     get_content()
  1. 出现验证码后

我个人用的是超级鹰,用其他打码平台效果差不多,原理就是弹出人机验证后,通过css定位自动点击先过人机验证码

python 复制代码
 dp.ele('text=点击按钮开始验证').click()
        time.sleep(4)

等待几秒后弹出点选验证

python 复制代码
 # 定位验证码图片标签
        img = dp.ele('css:.geetest_box')
        # 截取验证码图片
        img.get_screenshot('bg.png')

截取图片上传打码平台,计算坐标

python 复制代码
def get_codex():
    chaojiying = Chaojiying_Client('用户账号', '用户密码', '软件ID')
    im = open('bg.png', 'rb').read()
    print(chaojiying.PostPic(im, 9103))
    x_y = chaojiying.PostPic(im, 9103)['pic_str']# 9103验证码类型
    return x_y.split('|')

利用打码平台进行验证码识别,获取坐标

通过验证后,在返回接口中获取uuid列表,提取uuid即可

效果如上

相关推荐
PieroPc6 分钟前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
feasibility.8 分钟前
反爬十层妖塔:现代爬虫攻防的立体战争
爬虫·python·科技·scrapy·rust·go·硬件
十八旬18 分钟前
快速安装ClaudeCode完整指南
开发语言·windows·python·claude
dFObBIMmai1 小时前
如何在 CSS 中实现元素的绝对定位,使其不受窗口尺寸变化影响
jvm·数据库·python
WL_Aurora1 小时前
Python 算法基础篇之集合
python·算法
头歌实践平台2 小时前
招聘大数据可视化
大数据·python
Cloud_Shy6183 小时前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第八章 使用读写包操作 Excel 文件 上篇)
python·数据分析·excel·pandas
闵孚龙3 小时前
Claude Code 工具提示词全拆解:AI Agent、Prompt Engineering、工具调用、上下文工程、自动化编程的底层逻辑
人工智能·自动化·prompt
輕華3 小时前
uv工具详解——Python包与项目管理器完全指南
开发语言·python·uv
li星野3 小时前
位运算 & 数学 & 高频进阶九题通关(Python + C++)
c++·python·学习·算法